我有一个画布画面,我用自由的手写作。我想要做的是当用户在涂鸦之后抬起他的手指ACTION_UP
事件将被调用。
我的要求是要知道用户已经完成了他的涂鸦,在他完成涂鸦后我会采取行动。
为了在ACTION_UP
事件中实现这一点,我正在创建一个新的线程来休眠3秒钟,但我希望在线程处于睡眠状态时,如果用户再次开始在屏幕然后我想调用ACTION_DOWN
事件。
我没有办法做到这一点。代码如下所述。 请帮忙。
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;
答案 0 :(得分:0)
我不确定。但为什么你不能为此设置一个全局布尔标志?在线程睡着之后,检查是否发生了动作,如果是,请将其设置为true。然后根据标志的值,您可以编写其他代码。