public boolean onTouch(View view, MotionEvent motionEvent) { if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){ //记录按下时的数据 sx = (int) motionEvent.getRawX(); sy = (int) motionEvent.getRawY(); origin_l = view.getLeft(); origin_r = view.getRight(); origin_b = view.getBottom(); origin_t = view.getTop(); } else if(motionEvent.getAction() == MotionEvent.ACTION_UP){ // Log.d(TAG, "onTouch: UP"); // 得到imageView最开始的各顶点的坐标 Toast.makeText(getContext(),String.valueOf(sx)+","+String.valueOf(sy),Toast.LENGTH_SHORT).show(); view.layout(origin_l,origin_t,origin_r,origin_b); } else if(motionEvent.getAction() == MotionEvent.ACTION_MOVE){ int x = (int) motionEvent.getRawX(); int y = (int) motionEvent.getRawY(); // 获取手指移动的距离 int dx = x - sx; int dy = y - sy; // 得到imageView最开始的各顶点的坐标 int l = view.getLeft(); int r = view.getRight(); int t = view.getTop(); int b = view.getBottom(); // 更改imageView在窗体的位置 view.layout(l + dx, t + dy, r + dx, b + dy); // 获取移动后的位置 sx = (int) motionEvent.getRawX(); sy = (int) motionEvent.getRawY(); } return true; }