Android View坐标系

Android有两种坐标系。

  • Android坐标系
  • Android视图坐标系

1、坐标解释

  • Android 坐标系:以屏幕左上角为原点。

    • MotionEvent.getRawX()、MotionEvent.getRawY()等获取绝对坐标的方法则属于Android坐标系
  • Android视图坐标系:以父View左上角为原点。
    • 其中view.getLeft()、view.getRight()、view.getTop()、view.getBottom()、getX()、getY()等等方法
      属于Android视图坐标系,获取的数值是相对与父View左上角的。

2、移动后View的left、top

view.getTop()、view.getLeft()表示View的左上角,一般情况下, lefttop是不会改变的,改变的是view(x,y)坐标值,对应方法也就是view.getX()、view.getY();

View通过改变translationX、translationY属性完成的平移操作,view.getLeft()、view.getTop()的值不会改变。view.getX()、view.getY()则是View目前位置的左上角坐标。

如果通过ValueAnimator + view.layout改变了View的位置则view.getLeft() & view.getTop()的值会发生改变,因为layout方法强制改变了left&top的值

3、translationX、translationY这里写图片描述

矩形1为移动前位置
矩形2为移动后位置
translationX、translationY分别对应图中的x、y
关系为:
getX() = translationX + getLeft();
getY() = translationY + getTop();

如果想要将view恢复原位置,设置tranlsationX、translationY为0即可。
通过改变tranlsationX、Y将view进行拖动,需要不断记录tranlsationX、Y的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值