Left,Top,Bottom,Right
首先这四个值都是以父容器左上角为参考系原点,向右为X轴正方向,向下为Y轴正方向的相对数值,单位均为像素
- Left
- 通过
getLeft()
方法得到 - 代表当前View左上角的X坐标
- 当前View的左边界在父容器左边界的右边时为正值,反之为负值
- Top
- 通过
getTop()
得到 - 代表当前View左上角的Y坐标
- 当在父容器上边界下方时为正值,反之为负值
- Bottom
- 通过
getBottom()
方法得到 - 当前View右下角的Y坐标
- 当在父容器上边界下方时为正值,反之为负值
- Right
- 通过
getRight()
方法得到 - 代表当前View右下角的X坐标
-
当前View的左边界在父容器左边界的右边时为正值,反之为负值
translationX, translationY,X,Y,getRawX(), getRawY()
首先这四个值都是以父容器左上角为参考系原点,向右为X轴正方向,向下为Y轴正方向的相对数值,单位均为像素
- translationX
- 当前View左上角相对于原始位置数据在X轴上的的平移量,初始值为0
- 相对于原始左上角坐标量,向X轴正向(右)移动为正,否为负
- public float getTranslationX()获取
- public void setTranslationX(float translationX)修改
- translationY
- 当前View左上角相对于父容器在Y轴上的平移量,初始值为0
- 相对于原始左上角坐标量,向Y轴正向(下)移动为正,否为负
- public float getTranslationY()获取
- public void setTranslationY(float translationX)修改
- X
- public float getX()获取
/**
* The visual x position of this view, in pixels. This is equivalent to the
* {@link #setTranslationX(float) translationX} property plus the current
* {@link #getLeft() left} property.
*
* @return The visual x position of this view, in pixels.
*/
@ViewDebug.ExportedProperty(category = "drawing")
public float getX() {
return mLeft + getTranslationX();
}
- Y
- public float getY()获取
/**
* The visual y position of this view, in pixels. This is equivalent to the
* {@link #setTranslationY(float) translationY} property plus the current
* {@link #getTop() top} property.
*
* @return The visual y position of this view, in pixels.
*/
@ViewDebug.ExportedProperty(category = "drawing")
public float getY() {
return mTop + getTranslationY();
}
- getRawX(),getRawY()
event.getRawX:表示的是触摸点距离屏幕左边界的距离
event.getRawY:表示的是触摸点距离屏幕上边界的距离 -
View在平移过程中left,right,bottom,top的值不会改变,为原始左上角以及右上角的位置信息,发生改变的是x、y、translationX和translationY的值。具体关系如下图: