参考文章:
http://www.gcssloop.com/customview/CoordinateSystem
http://blog.csdn.net/lvxiangan/article/details/19971509
http://blog.csdn.net/yanbober/article/details/50419117/
安卓屏幕的坐标系:
原点是左上角(0,0),向下是y轴正方向,向右是x轴正方向
相应方法的解释:
1、View的静态方法(不考虑View的平移操作):
getLeft(): 返回View自身左边到父布局左边的距离
getTop() 返回View自身顶边到父布局顶边的距离
getRight() 返回View自身右边到父布局左边的距离
getBottom() 返回View自身底边到父布局顶边的距离
需要注意的是,这四个方法获取的坐标表示的是View原始状态时相对于父容器的坐标,对View进行平移操作并不会改变这四个方法的返回值。
一: getX()与getY()方法获取的是View左上角相对于父容器的坐标,当View没有发生平移操作时,getX()==getLeft()、getY==getTop()。
二: translationX与 translationY是View左上角相对于父容器的偏移量:translationX = getX() - getLeft(),当View未发生平移操作时,translationX 与translationY都为0。
2、MotionEvent
当重写View的onTouchEvent(MotionEvent event)方法时Android会把触摸事件封装成MotionEvent成提供给开发者,MotionEvent提供了两组用于获取用户点击点坐标的方法:
getX() 当前触摸事件距离当前View左边的距离
getY() 当前触摸事件距离当前View顶边的距离
getRawX() 当前触摸事件距离整个屏幕左边的距离
getRawY() 当前触摸事件距离整个屏幕顶边的距离