如何获得连续的触摸事件?

dal*_*liz 11 events android continuous touch

我的课程扩展了View,我需要在其上获得连续的触摸事件.

如果我使用:

public boolean onTouchEvent(MotionEvent me) {

    if(me.getAction()==MotionEvent.ACTION_DOWN) {
        myAction();
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

...触摸事件被捕获一次.

如果我需要连续触摸而不移动手指怎么办?请告诉我,我不需要使用线程或计时器.我的应用程序已经太沉重了.

谢谢.

Ste*_*ley 15

使用if(me.getAction() == MotionEvent.ACTION_MOVE).手指100%完全保持在屏幕上是不可能的,因此每次手指移动时都会调用Action_Move,即使它只是一两个像素.

您也可以收听me.getAction() == MotionEvent.ACTION_UP- 直到发生这种情况,用户仍然必须将手指放在屏幕上.

  • 正确,我更喜欢解决方案在ACTION_DOWN上设置一个标志并使用它,直到ACTION_UP上的标志设置为false (2认同)

小智 5

你需要为元素设置这个属性android:focusable ="true"android:clickable ="true"如果没有,只需产生向下动作.