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 触摸系统
我正在做一个 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 触摸系统