MoveImageView in Android
public class MoveImageView extends ImageView {
private float mLastTouchX;
private float mLastTouchY;
public MoveImageView(Context context) {
super(context);
init();
}
public MoveImageView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MoveImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final float x = event.getRawX();
final float y = event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
mLastTouchX = x;
mLastTouchY = y;
break;
case MotionEvent.ACTION_MOVE:
float deltaX = x - mLastTouchX;
float deltaY = y - mLastTouchY;
float translationX = getTranslationX() + deltaX;
float translationY = getTranslationY() + deltaY;
setTranslationX(translationX);
setTranslationY(translationY);
break;
}
return true;
}
});
}
}