16

以下两种方法有什么区别?

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

 int action2 = event.getAction();
4

1 回答 1

17

ACTION_MASK用于分隔实际动作和指针标识符(例如,第一根手指触摸、第二根手指触摸等)。 getAction() 中返回的值的前 8 位是实际动作部分,因此当您按位与时它带有动作掩码(= 11111111 = 255 = 0xff),你只剩下动作而没有指针信息。

请记住,这里&用作算术运算符(按位)而不是逻辑运算符(单&在 Java 中是一个完全有效的逻辑运算符,就像是&&)。

于 2013-05-09T15:07:46.087 回答