ビューで onTouchEvent をオーバーライドします。
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
if (!mEnable) {
return false;
}
int action = event.getAction();
int x = (int)event.getX();
int y = (int)event.getY();
switch (action) {
case MotionEvent.ACTION_DOWN:
onTouchActionDown(x, y);
break;
case MotionEvent.ACTION_MOVE:
onTouchActionMove(x, y);
break;
case MotionEvent.ACTION_UP:
onTouchActionUp(x, y);
break;
}
return true;
}
次に、 onTouchActionUp/Down のいずれかで、座標を使用して画像リソースを再描画します。つまり、ビューを無効にします。
onDraw をオーバーライドして、ドラッグされたグラフィックを描画します。
@Override
protected void onDraw(Canvas canvas)
drawMyDragGfx();
}