先看一张图片(网上找的)
第一种是在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方向上的滚动距离
本文探讨了在Android开发中,如何区分并使用getX、getRawX、getWidth、getTranslationX等相关方法。通过实例解析在触摸事件和View布局中的应用,包括触摸点相对于屏幕和自身的坐标、View的边界距离、以及View在X和Y轴的偏移量。同时,还解释了在支持滑动的父控件中,子控件滚动距离的获取方式。

528

被折叠的 条评论
为什么被折叠?



