我正在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如何处理这种情况。