Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onTouch事件有时不触发动作\u指针\u向下_Android - Fatal编程技术网

Android onTouch事件有时不触发动作\u指针\u向下

Android onTouch事件有时不触发动作\u指针\u向下,android,Android,我正在尝试在我正在制作的应用程序中实现收缩缩放,但在onTouch事件中遇到了问题。指针向上和向下的动作似乎不会立即触发,就像在动作移动之前,您不会得到指针向上或向下。因此,如果两个手指几乎同时触碰屏幕,则第二个手指(应该是指针(1))在调用指针向下之前获得一个移动动作,使代码认为这是拖动而不是收缩缩放。还有人看到这个吗?不管怎么说?谢谢。我的项目中也有同样的问题。如果我触摸屏幕,手指离屏幕太近,系统无法实现多点触摸事件。我认为这是因为当你的手指离得太近时,系统会将它视为一根手指 也许你可以用一

我正在尝试在我正在制作的应用程序中实现收缩缩放,但在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)
您保存了我的一天。