Android - ACTION_POINTER_UP直到剩余触摸移动才被调用

时间:2016-12-28 21:29:30

标签: java android surfaceview multi-touch

在尝试调试多点触控问题时,我最终剥离了我的onTouchEvent代码以查看发生了什么,并发现了以下问题。我错过了什么吗?提前干杯!

  • 手指1向下:调用ACTION_DOWN - 确定。
  • 手指2向下:调用ACTION_POINTER_DOWN - 确定

现在这就是问题所在:

  • 手指1(第1个手指)向上:未调用ACTION_POINTER_UP。但是当手指2被移动时就会被调用。

当释放手指1时,通过尽可能保持手指2稳定,上述情况发生时非常明显。

这是我的简单测试代码,vars只是连续打印出来:

@Override
public boolean onTouchEvent(MotionEvent event)
{
    switch (event.getActionMasked())
    {
        case MotionEvent.ACTION_DOWN:
            jpACTIONDOWN++;
            return true;
        case MotionEvent.ACTION_POINTER_DOWN:
            jpACTIONPOINTERDOWN++;
            return true;
        case MotionEvent.ACTION_UP:
            jpACTIONUP++;
            return true;
        case MotionEvent.ACTION_POINTER_UP:
            jpACTIONPOINTERUP++;
            return true;
        case MotionEvent.ACTION_MOVE:
            jpACTIONMOVE++;
            return true;
        default:
            jpDEFAULT++;
    }
    return false;
}

0 个答案:

没有答案