View 的 translationX、 translationY , X、Y 和 Left、Top,Right、Bottom

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/xx326664162/article/details/81356252

网上有不少人把view的坐标和点击事件的坐标 混为一谈

一、View的相关坐标和位置

先来看一张图,对这几个值有个大概了解,下面再进行详细的分析

这里写图片描述

先来了解一个概念:

view动画不改变view的真实位置,就是肉眼看上去,view位置发生了变化,但是它的点击区域还是在原来的位置。

属性动画和setTranslationX/setTranslationY ,会改变显示位置和真实位置

上图中view1是初始位置,通过执行setTranslation函数,得到的view2位置,其中left,top,right,bottom这几个值不会改变

1、left,top,right,bottom

View 的位置主要由它的四个顶点的位置来决定,分别对应 View 的四个属性:left top right bottom。对应的函数是getLeft,getTop,getRight,getBottom

left: View 左上顶点相对于父容器的横坐标
top: View 左上顶点相对于父容器的纵坐标
right: View 右下顶点相对于父容器的横坐标
bottom: View 右下顶点相对于父容器的纵坐标

这几个值表示的是view的真身位置,它表示哪里,点击区域就在哪里。和肉眼在屏幕上看到的位置可能不一样

2、 X,Y

从 Android 3.0 开始,View 增加了 x,y,translationX 和 translationY。
x,y 同样是 View 左上角相对父容器的坐标,但不同于 left 和 top ,这两个坐标点的值并一定都是相等的。
而不相等的情况是由 translationX 和 translationY 值的设置引起的。

3、 translationX,translationY

android开发艺术探索中,关于translationX的讲解是错误的。真实情况是,translationX是view 相对于它自身位置的偏移量

也就是肉眼看到的view的位置,和真实的view的位置的偏移量。

从上图可以得知:x = left + translationX

二、点击事件的XY坐标

这里写图片描述

参考:

View坐标系
Android - 区分 View 的 translationX、Y , X、Y 和 Left、Top,Right、Bottom

关注我的公众号,轻松了解和学习更多技术
这里写图片描述

猜你喜欢

转载自blog.csdn.net/xx326664162/article/details/81356252