概括:Android中有两种坐标系(Android坐标系和视图坐标系)。下面将介绍这两种坐标系以及在坐标系中获取对应的坐标值的一些方法。
Android坐标系和视图坐标系
1)Android坐标系
所谓的Android坐标系就是以手机屏幕左上角为原点,从该点水平向右为X轴,从该点水平向下为Y轴。如果是在触控事件中,获取坐标值的方法为getRawX()和getRawY()。
示例图如下:
2)视图坐标系
具体来说就是字视图在父视图中的位置(以父视图的左上角为相对坐标原点)
获取坐标值以及相对距离的一些方法
在Android中提供了很多的方法来获取坐标值和相对距离。但是在使用这些方法的时候,一定要清楚是以哪些坐标系为标准获取的。
如下图所示:
说明:最外层是手机屏幕,中间层是ViewGroup,最内层是ViewGroup中放置的View。
上图中的方法可以分为两类:View提供的方法和MotionEvent提供的方法
View提供的方法:
- getTop() 获得View自身的顶边到父布局顶边的距离
- getLeft() 获得View自身的左边到父布局左边的距离、
- getBottom() 获得View自身的底边到父布局顶边的距离
- getRight() 获得View自身的右边到父布局左边的距离
MotionEvent提供的方法:
- getX() 获得点击事件距离控件左边的距离,即视图坐标
- getY() 获得点击事件距离控件顶边的距离,即视图坐标
- getRawX() 获得点击事件距离整个屏幕左边的距离,即绝对坐标
- getRawY() 获得点击事件距离整个屏幕顶边的距离,即绝对坐标