View和Event位置的改变方法

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值