Android开发之getX,getRawX,getWidth,getTranslationX等的区别

来源:互联网 发布:js满足条件自动跳转 编辑:程序博客网 时间:2024/06/18 14:49

先看一张图片(网上找的)
这里写图片描述

第一种是在onTouchEvent中
event.getX():表示的是触摸的点距离自身左边界的距离
event.getY():表示的是触摸的点距离自身上边界的距离
event.getRawX:表示的是触摸点距离屏幕左边界的距离
event.getRawY:表示的是触摸点距离屏幕上边界的距离

第二种是在View中
view.getTop():子View的顶部到父View顶部的距离
view.getRight():子View的右边界到父View的左边界的距离
view.getBottom():子View的底部到父View的顶部的距离
view.getLeft():子View的左边界到父View的左边界的距离
这四个值与父控件的padding和子控件的margin无关,不管这两个属性设置多少,四个值始终是子、父控件的边界差,认准边界即可。

view.getTranslationX():计算的是该View在X轴的偏移量。初始值为0,向左偏移值为负,向右偏移值为正。
view.getTranslationY():计算的是该View在Y轴的偏移量。初始值为0,向上偏移为负,向下偏移为正。
view.getX=view.getTranslationX()+view.getLeft()
view.getY=view.getTranslationY()+view.getTop()

这里写图片描述
通过属性动画将子控件向右移动a(a>0)的距离之后,view.getLeft()的值没变,view.getTranslationX=a,view.getX=view.getTranslationX()+view.getLeft(),即增加了a。

第三种是在支持滑动的父控件中
需要说明的一点是:当屏幕滑动时,并不是父控件在移动,而是父控件中的子控件在移动(view表示父控件)
view.getScrollX:父控件中的子控件在x方向上的滚动距离
view.getScrollY:父控件中的子控件在y方向上的滚动距离

阅读全文
1 0