1.首先了解View在手机屏幕中的位置信息
其中getTop(),getLeft(),getRight(),getBottom()分别指View的上、左、右、下边框到根布局各边的距离。而getX(),getY(),指当点击事件发生时,点击事件位置相对于View的位置,getRawX(),getRawY()指点击事件相对与屏幕边框的距离。
2.利用以上属性可简单实现对View的移动,只需要重写View的Touch时间即可
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
lX =event.getRawX();
lY=event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
nX = event.getRawX();
nY = event.getRawY();
setX((nX-lX));
setY((nY-lY));
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
3.效果如下: