View的方法介绍:
getLeft:相对于父布局,该View距离父布局 左边缘 的距离(px);
getTop:相对于父布局,该View距离父布局 上边缘 的距离(px);
getRight:相对于父布局,该View距离父布右边缘的距离(px);
getBottom:相对于父布局,该View距离父布局下边缘的距离(px);
getTranslationX:相对于自身初始位置,该View通过setTranslationX方法被水平移动的距离;
getTranslationY:相对于自身初始位置,该View通过setTransitionY方法被垂直移动的距离;
getX:相对于父布局,该View的getLeft距离 + 该View的getTranslationX距离;
getY:相对于父布局,该View的getTop距离 + 该View的getTranslationY距离;
setTranslationX:相对于自身初始位置,该View水平方向移动相应距离;
setTranslationY:相对于自身初始位置,该View垂直方向移动相应距离;
setX(distance):相对于父布局,该View水平方向移动 distance - mLeft 距离,所以distance是相对于父布局左边缘的距离。
setY(distance):相对于父布局,该View垂直方向移动 distance -mTop 距离,所以distance是相对于父布局上边缘的距离。
注:View的setX、setY、getX、getY 慎用!他们内部的计算逻辑容易影响整体计算。用setTranslation、getTranslation取代,因为这两套方法是相对于自身初始位置的,不受padding和margin影响。
另,offsetTopAndBottom和offsetLeftAndRight直接改的是mLeft、mTop、mRight、mBottom值,所以调用getLeft、getTop、getRight、getBottom方法其值会变。同样慎用。
Event的方法介绍:
getX:如果触击到该View区域内,则表示,相对于该View,触击点距离该View的 左边缘的距离(px)
如果触击到该View区域外,则表示,相对于该整个屏幕,触击点距离整个屏幕的 左边缘的距离(px)
getY:如果触击到该View区域内,则表示,相对于该View,触击点距离该View的 上边缘的距离(px)
如果触击到该View区域外,则表示,相对于该整个屏幕,触击点距离整个屏幕的 上边缘的距离(px)
getRawX:相对于该整个屏幕,触击点距离整个屏幕的 左边缘的距离(px);
getRawY:相对于该整个屏幕,触击点距离整个屏幕的 上边缘的距离(px);