1

我正在android上制作一个需要多点触控手势的应用程序!我发现我的设备 Novo 7 (ainol) 支持 5 个接触点。我为这样的视图实现 onTouch

public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub

    if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_DOWN || event.getAction() == MotionEvent.ACTION_DOWN){
        Log.i("Touch", "Touch "+event.getPointerCount() + " -- Position " +
                    event.getRawX()+","+event.getRawY());
    }
    else if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP|| event.getAction() == MotionEvent.ACTION_UP){
        Log.i("Touch up","Pointer = "+event.getPointerCount());
    }
    return true;
}

起初,一切正常,日志完美打印出 5 条消息。但是当我触摸并释放屏幕上的第 6 个点时,事情就发生了。日志重新打印出 5 条消息。你能告诉我这里发生了什么吗?对不起我的英语不好,如果这是一个菜鸟问题!非常感谢!

------------ 已编辑--------

在记录 ACTION_POINTER_UP 和 ACTION_UP 后,我发现当第 6 根手指触摸(触摸)屏幕时,所有当前指针(5 个指针)都从事件中释放(例如,action_up 和 action_pointer_up 调用了 5 个先前的指针)!现在的问题是,当达到接触点的限制时,android如何处理这种情况。

4

0 回答 0