mLeft mRight mTop mBottom
View中的属性,服务于View,用于定位它在父View的位置
mTop:View自身顶边到其父布局顶边的距离
mLeft:View自身左边到其父布局左边的距离
mRight:View自身右边到其父布局左边的距离
mBottom:View自身底边到其父布局顶边的距离
获取的方法:getTop()、getLeft()、getBottom()、getRight()
mScrollX mScrollY
View中的属性,服务于View scroll,有个例子很形象,拿着放大镜看清明上河图,手机屏幕相当于放大镜,清明上河图相当于view,移动放大镜相当于scroll操作
mScrollX:表示离View起始位置的X水平方向的偏移量
mScrollY:表示离View起始位置的Y垂直方向的偏移量
获取的方法:getScrollX()、getScrollY()
getX() getY() getTranslationX() getTranslationY()
View中的方法,服务于View的补间动画,他们的关系是
getX() = mLeft + getTranslationX()
getY() = mTop + getTranslationY()
补间动画有4种类型,平移,旋转,透明度,缩放。补间动画不会改变View的属性,只会改变显示效果。
补间动画原理简单理解就是在每一次VSYN到来时 在View的draw方法里面,根据当前时间计算动画进度 计算出一个需要变换的Transformation矩阵,然后最终设置到canvas上去,调用canvas concat做矩阵变换。
getTranslationX()和getTranslationY()获取的就是补间动画平移的值。
MotionEvent 中 getX() getY() getRawX() getRawY()
MotionEvent中的方法,服务于点击事件
getX():获取点击事件相对控件左边的x轴坐标,即点击事件距离控件左边的距离
getY():获取点击事件相对控件顶边的y轴坐标,即点击事件距离控件顶边的距离
getRawX():获取点击事件相对整个屏幕左边的x轴坐标,即点击事件距离整个屏幕左边的距离
getRawY():获取点击事件相对整个屏幕顶边的y轴坐标,即点击事件距离整个屏幕顶边的距离
参考:
View 的 translationX、 translationY , X、Y 和 Left、Top,Right、Bottom
Scroll原理-附ScrollView源码分析
Android补间动画原理分析