Android坐标相关

坐标相关

获取点相对屏幕左上角的坐标

getLocationOnScreen(int[] location);//得到的是一个数组,包含X,Y的坐标

getRawX();//获取X坐标
getRawY();//获取Y坐标

获取点相对父控件左上角的坐标

getLocationInWindow(int[] location)//得到的是一个数组,包含X,Y的坐标

getX();//获取X坐标
getY();//获取Y坐标

获取View距离父控件的距离

getTop();//view自身的顶边到父控件顶边的距离
getBottom();//view自身的下边到父控件下边的距离
getLeft();//view自身的左边到父控件左边的距离
getRight();//view自身的右边到父控件右边的距离

MotionEvent提供的方法

//绝对坐标
getRawX();//获取X坐标
getRawY();//获取Y坐标

//相对坐标
getX();//获取X坐标
getY();//获取Y坐标

移动View的方法

通过view.layout()

v.layout(v.getLeft() + offsetX, v.getTop() + offsetY, v.getRight() + offsetX, v.getBottom() + offsetY);

通过view.offsetLeftAndRight()和view.offsetTopAndBottom()

       //效果和layout()方法一样
        v.offsetLeftAndRight(offsetX);
        v.offsetTopAndBottom(offsetY);

通过父控件的scrollTo()和scrollBy()方法

移动的是其中的内容,所以向右滑动的偏移量是负值,上下滑动同理,相当于拖动屏幕

scrollTo(x,y) // 移动到具体的点
scrollBy(dx,dy) //移动的增量

具体使用

//方法3:
        ((View) v.getParent()).scrollBy(-offsetX, -offsetY);

Scroller

能够实现View的滑动效果的类,参考android 群英传5.2.5