我在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条消息。你能告诉我这里发生了什么吗?抱歉我的英文不好,如果这是一个菜鸟问题!非常感谢你!
----------- EDITED --------------------
在记录ACTION_POINTER_UP和ACTION_UP之后,我发现当第6个手指触摸(触摸)屏幕时,所有当前指针(5个指针)都从事件中释放(例如,action_up和action_pointer_up是5之前的呼叫指针)!现在,问题是,当触摸点的限制到达时,android如何处理这种情况。