フリーハンドで落書きしているキャンバス画面があります。私がやろうとしているのは、ユーザーが何かを落書きした後に指を離すと、ACTION_UP
イベントが呼び出されるということです。私の要件は、ユーザーが落書きを行ったことを知ることです。ユーザーが落書きを行った後、私は行動を起こします。
イベントでこれをACTION_UP
実現するために、新しいスレッドを 3 秒間スリープさせていますが、スレッドがスリープ状態のときに、その 3 秒間にユーザーが画面上で再び落書きを開始した場合は、ACTION_DOWN
event を呼び出したいと考えています。
これを行う方法がありません。コードは以下に記載されています。助けてください 。
public boolean onTouchEvent(MotionEvent event) {
float eventX = event.getX();
float eventY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(eventX, eventY);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(eventX, eventY);
break;
case MotionEvent.ACTION_UP:
thread = new Thread() {
int wait = 0;
@Override
public void run() {
super.run();
while (wait < 3000) {
try {
sleep(100);
wait += 100;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
try {
pointerUp();
} catch (Exception e) {
e.printStackTrace();
}
}
};
thread.start();
break;
default:
return false;