Android onTouch事件有时不触发动作\u指针\u向下
我正在尝试在我正在制作的应用程序中实现收缩缩放,但在onTouch事件中遇到了问题。指针向上和向下的动作似乎不会立即触发,就像在动作移动之前,您不会得到指针向上或向下。因此,如果两个手指几乎同时触碰屏幕,则第二个手指(应该是指针(1))在调用指针向下之前获得一个移动动作,使代码认为这是拖动而不是收缩缩放。还有人看到这个吗?不管怎么说?谢谢。我的项目中也有同样的问题。如果我触摸屏幕,手指离屏幕太近,系统无法实现多点触摸事件。我认为这是因为当你的手指离得太近时,系统会将它视为一根手指Android onTouch事件有时不触发动作\u指针\u向下,android,Android,我正在尝试在我正在制作的应用程序中实现收缩缩放,但在onTouch事件中遇到了问题。指针向上和向下的动作似乎不会立即触发,就像在动作移动之前,您不会得到指针向上或向下。因此,如果两个手指几乎同时触碰屏幕,则第二个手指(应该是指针(1))在调用指针向下之前获得一个移动动作,使代码认为这是拖动而不是收缩缩放。还有人看到这个吗?不管怎么说?谢谢。我的项目中也有同样的问题。如果我触摸屏幕,手指离屏幕太近,系统无法实现多点触摸事件。我认为这是因为当你的手指离得太近时,系统会将它视为一根手指 也许你可以用一
也许你可以用一个方法来检查这个假设,当你用一个手指触摸屏幕时,或者当你用两个手指靠近屏幕时,估计屏幕被按下的面积。结果是我在Evo上闪存的自定义ROM有问题。再次感谢hara的建议,因为这是我遇到的另一个bug。面临同样的问题 结果是,当我触摸到第二根手指时,我的应用程序启动了动作指针向下,然后启动了动作
getAction()方法给出了需要对照此列表检查的事件编号请确保在开关中包含MotionEvent.ACTION\u掩码。例如:
switch(event.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_DOWN:
some code
break;
case MotionEvent.ACTION_POINTER_DOWN:
ETC
我已经用这个解决了同样的问题:
switch(event.getActionMasked()) {
case MotionEvent.ACTION_POINTER_DOWN:
//your code
break;
}
我注意到,如果onTouch(event)方法返回为true,就会触发这个(MotionEvent.ACTION\u POINTER\u DOWN)案例,如下所示:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(motionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
//your code
break ;
}
return true;
}
注:
MotionEvent.ACTION_DOWN仅当onTouch()方法返回一个布尔值作为returnsuper.onTouchEvent(事件)时才被监听因此请确保避免这种情况。谢谢你的建议,我相信这会有用的。但我不确定这是我的问题,因为无论我在哪里触摸屏幕都会发生。使用调试器,我可以看到指针向上和向下事件似乎总是延迟的,并且发生在移动事件之后(并且移动事件在该实例中总是只有一个指针)。我甚至尝试了“Dotty”应用程序,可以在其中看到相同的行为。这可能是硬件问题吗?我有一个Evo w/定制ROM。谢谢。哇!这实际上解决了我的问题!我不明白为什么。。。但是嘿!谢谢:DYou da real mvp@tayler!你救了我的命,亲爱的。。太多了!您可以使用现成的支持方法:
MotionEventCompat.getActionMasked(event)
您保存了我的一天。