MotionEvent的文档在“一致性保证”中指出:“(对于触摸事件)...指针一次下降一次,成群移动,然后一次上升一次,或者被取消”。

如果我理解正确,则有两种方法可以确定触发onTouchEvent()的操作:


MotionEvent.getAction()
MotionEvent.getActionMasked()MotionEvent.getActionIndex()(这应该用于多点触控,这是我需要的)


由于getActionMasked()始终仅返回ACTION_POINTER_DOWNACTION_POINTER_UP,因此根据一致性保证,在MotionEvent内部始终只有一个指针传递给onTouchEvent(),这意味着MotionEvent.getActionIndex()将始终返回0。

如果是这样,根本没有MotionEvent.getActionIndex()有什么意义?换句话说:我想念什么?

更新:为了进一步阐明我的问题:MotionEvent.getActionMasked()仅返回一个动作,而MotionEvent.getActionIndex()告诉我们它适用于哪个指针。这是否意味着我们无法获得其他指针的作用?还是如果所有指针都相同,为什么要完全指定actionIndex?

最佳答案

事件ACTION_POINTER_DOWN表示两个或多个手指现在正在触摸屏幕,以区分您是使用getActionIndex()的第二根还是第三根(等)手指。




  由于getActionMasked()总是只返回ACTION_POINTER_DOWNACTION_POINTER_UP


如果有任何混淆,getActionMasked()返回更多类型,例如ACTION_DOWNACTION_MOVE等。

关于android - 如何正确使用多点触控-MotionEvent.getActionIndex()的目的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13546376/

10-10 20:14