使用MotionEvent.getAction()方法的区别

16

以下两种方法有何不同之处?

 int action1 = event.getAction() & MotionEvent.ACTION_MASK;

 int action2 = event.getAction();

注意:event.getAction()&MotionEvent.ACTION_MASKgetActionMasked()相同。请参见此问题 - Suragch
1个回答

17

ACTION_MASK 用于分离实际动作和指针标识符(例如,第一个手指触摸、第二个手指触摸等)。在 getAction() 返回的值的前8位是实际动作部分,因此当你将其与 action mask(=11111111=255=0xff)进行按位与运算时,你只剩下实际动作部分,没有任何指针信息。

请注意,这里使用的是 & 作为算术运算符(位运算),而不是逻辑运算符(单个 & 在 Java 中是完全有效的逻辑运算符,如 && 一样)。


1
好的,但我不知道掩码的意义,因为我可以直接将action2与MotionEvent.ACTION_MOVE进行比较。 - iCould7
2
在大多数情况下,如果您不支持多点触控,则不需要使用它。 - Raghav Sood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接