以下两种方法有何不同之处?
int action1 = event.getAction() & MotionEvent.ACTION_MASK;
int action2 = event.getAction();
以下两种方法有何不同之处?
int action1 = event.getAction() & MotionEvent.ACTION_MASK;
int action2 = event.getAction();
ACTION_MASK
用于分离实际动作和指针标识符(例如,第一个手指触摸、第二个手指触摸等)。在 getAction() 返回的值的前8位是实际动作部分,因此当你将其与 action mask(=11111111=255=0xff)进行按位与运算时,你只剩下实际动作部分,没有任何指针信息。
请注意,这里使用的是 &
作为算术运算符(位运算),而不是逻辑运算符(单个 &
在 Java 中是完全有效的逻辑运算符,如 &&
一样)。
event.getAction()&MotionEvent.ACTION_MASK
与getActionMasked()
相同。请参见此问题。 - Suragch