Android 屏幕触摸操作

Android Screen Touch Action

我正在做一个 android 项目,我需要知道用户是 Touch Down 屏幕还是 Touch Up 屏幕,我经常需要这个。我怎样才能做到这一点? 我在 switch case 的 Touch Event 上使用了向上动作和向下动作,但这只工作了一次。我也尝试了下面的代码,但它只为第一次触摸提供了 var(int variable) 的值。

我的代码:

int var=-1;
@Override
public boolean onTouchEvent(MotionEvent event) {

    int action = event.getAction();

    if(action==MotionEvent.ACTION_DOWN)var=1;
    if(action==MotionEvent.ACTION_UP)var=0;
    if(action==MotionEvent.ACTION_MOVE)var=1;

    return super.onTouchEvent(event); 
}

我一次又一次需要var的值。

由于 onTouchEvent 是触摸事件遍历的最后一点,如果 children 之一已经消耗了触摸事件(或者如果您返回 false for MotionEvent.ACTION_DOWN 表示您对此手势根本不感兴趣的事件)。

对于你的问题,我宁愿使用 dispatchTouchEvent() 而不是 onTouchEvent() 并在那里跟踪触摸。

有关更多信息,我强烈建议您熟悉 talk from Dave Smith 关于 Android 触摸系统