カスタム ビューを動的にレイアウト (つまり、FrameLayout) に追加していtouch events
ます。CustomView
コーナーでポイントをプルするための touchListeners を持つカスタム ビュー (下の画像に示されています)。それに加えて、画面上のビュー全体をドラッグ アンド ドロップする必要があります。ユーザーがそれらのコーナー ポイント (画像の色の領域) 以外に触れた場合は、ビューをドラッグ アンド ドロップする必要があります。ビュー私はタッチリスナーをトリガーしたくありません。
このコードを使用して、これらのポイントを引き出すことができます
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (topTouchArea.contains(event.getX(), event.getY())) {
currentTouch = TOUCH_TOP;
} else if (RightTouchArea.contains(event.getX(),event.getY())) {
currentTouch = TOUCH_RIGHT;
} else if (LeftTouchArea.contains(event.getX(),event.getY())) {
currentTouch = TOUCH_LEFT;
} else {
return false; //Return false if user touches none of the corners
}
return true;
case MotionEvent.ACTION_MOVE:
switch (currentTouch) {
case TOUCH_TOP:
top.x = event.getX();
top.y = event.getY();
invalidate();
return true;
case TOUCH_RIGHT:
Right.x = event.getX();
Right.y = event.getY();
invalidate();
return true;
case TOUCH_LEFT:
Left.x = event.getX();
Left.y = event.getY();
invalidate();
return true;
}
case MotionEvent.ACTION_UP:
switch (currentTouch) {
case TOUCH_TOP:
top.x = event.getX();
top.y = event.getY();
invalidate();
currentTouch = NONE;
return true;
case TOUCH_RIGHT:
Right.x = event.getX();
Right.y = event.getY();
invalidate();
currentTouch = NONE;
return true;
case TOUCH_LEFT:
Left.x = event.getX();
Left.y = event.getY();
invalidate();
currentTouch = NONE;
return true;
}
return false;
}
return false;
}
CustomViewの上記の文字と一緒にこのドラッグアンドドロップを実現するにはどうすればよいですか....