MotionEvent的文档在“一致性保证”中指出:“(对于触摸事件)...指针一次下降一次,成群移动,然后一次上升一次,或者被取消”。
如果我理解正确,则有两种方法可以确定触发onTouchEvent()
的操作:MotionEvent.getAction()
MotionEvent.getActionMasked()
和MotionEvent.getActionIndex()
(这应该用于多点触控,这是我需要的)
由于getActionMasked()
始终仅返回ACTION_POINTER_DOWN
和ACTION_POINTER_UP
,因此根据一致性保证,在MotionEvent
内部始终只有一个指针传递给onTouchEvent()
,这意味着MotionEvent.getActionIndex()
将始终返回0。
如果是这样,根本没有MotionEvent.getActionIndex()
有什么意义?换句话说:我想念什么?
更新:为了进一步阐明我的问题:MotionEvent.getActionMasked()
仅返回一个动作,而MotionEvent.getActionIndex()
告诉我们它适用于哪个指针。这是否意味着我们无法获得其他指针的作用?还是如果所有指针都相同,为什么要完全指定actionIndex?
最佳答案
事件ACTION_POINTER_DOWN
表示两个或多个手指现在正在触摸屏幕,以区分您是使用getActionIndex()
的第二根还是第三根(等)手指。
由于getActionMasked()
总是只返回ACTION_POINTER_DOWN
和ACTION_POINTER_UP
如果有任何混淆,getActionMasked()
返回更多类型,例如ACTION_DOWN
,ACTION_MOVE
等。
关于android - 如何正确使用多点触控-MotionEvent.getActionIndex()的目的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13546376/