Android坐标系将屏幕的左上角的顶点作为Android坐标系的原点,向右为X轴的正方向,向下是Y轴的正方向。
在触控事件中:getRawX() 和 getRawY() 获得的坐标也是Android坐标系的坐标。
android中的另外一个坐标系叫做视图坐标系,它描述的是子视图在父视图中的位置。我用drawIo画了张图。
注意:要区分View获取位置信息的方法和MotionEvent获取位置信息的方法。
先说结论:
View常用的几种方法获取View的坐标:
1 . View原始状态时相对于父容器的坐标:
注意:这四个值一旦确定,不会再变化
2 . 获取View左上角相对父容器的位置
注意:这两个值会随着View位置变化而改变
也就是说,当View没有发生平移操作时,View.getX() =View.getLeft(),View.getY()=View.getTop()。
3 . View左上角相对于父容器的偏移量
也就是说:translationX = getX() - getLeft()
当View未发生平移操作时,translationX 与translationY都为0。