1、getRawX、getRawY与getX、getY的区别
这四个方法都返回一个float类型的参数,单位为像素(Pixel)。
getRawX()、getRawY()返回的是触摸点相对于屏幕的位置,
而getX()、getY()返回的则是触摸点相对于View的位置。
2、View中的getScrollX、getScrollY
getScrollX()与getScrollY()的值由调用View的scrollTo(int x, int y)或者scrollBy(int x, int y)产生
其中scrollTo是将View中的内容移动到指定的坐标x、y处,此x、y是相对于View的左上角,而不是屏幕的左上角。
scrollBy(int x, int y)则是改变View中的相对位置,参数x、y为距离上一次的相对位置。
图:
屏幕中心放置了一个button,而button的内容被放置在了它的左上角
调用button的scrollTo(-100, -100)方法,button内的内容被移至相对button左上角(-100,-100)的位置
对上图调用scrollBy(-100,-100)方法,button内的内容被移至相对于上图的(-100,-100)位置
值得注意的是,当View中的内容向右移动时,getScrollX()的值为负数,同理,向scrollTo与scrollBy的x中传入负数,view中的内容向右移动,反之向左。
当View中的内容向下移动时,getScrollY()的值为负数,同理,向scrollTo与scrollBy的y中传入负数,view中的内容向下移动,反之向上。
3、View 提供的获取坐标的方法:都是以父布局的顶边和左边为对比
getTop()
获取到的是View本身的顶边到其父布局顶边的距离getLeft()
获取到的是View本身的左边到其父布局左边的距离getRight()
获取到的是View本身的右边到其父布局左边的距离getBottom()
获取到的是View本身的下边到其父布局顶边的距离