iv.setOnTouchListener(new OnTouchListener() {
int startX;
int startY;
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Log.i(TAG,"手指按下");
startX = v.getLeft()+20;
startY = v.getTop()+10;
InitstartX = v.getLeft();
InitStartY = v.getTop();
break;
case MotionEvent.ACTION_MOVE:
int rx = (int) event.getRawX();
int ry = (int) event.getRawY();
int dx = rx - startX;
int dy = ry - startY;
v.layout(v.getLeft()+dx, v.getTop()+dy, v.getRight()+dx, v.getBottom()+dy);
startX = (int) event.getRawX();
startY = (int )event.getRawY();
Log.i(TAG,"手指移动");
break;
case MotionEvent.ACTION_UP:
int endx = v.getLeft();
int endy = v.getTop();
int finaldx = endx - InitstartX;
int finaldy = endy - InitStartY;
Editor editor= sp.edit();
editor.putInt("dx", finaldx);
editor.putInt("dy", finaldy);
editor.commit();
Log.i(TAG,"手指离开屏幕");
break;
}
return true;
}
});