以下の2つのアプローチの違いは何ですか?
int action1 = event.getAction() & MotionEvent.ACTION_MASK;
int action2 = event.getAction();
以下の2つのアプローチの違いは何ですか?
int action1 = event.getAction() & MotionEvent.ACTION_MASK;
int action2 = event.getAction();
はACTION_MASK
、実際のアクションとポインター識別子 (たとえば、最初の指が触れた、2 番目の指が触れたなど) を分離するために使用されます。getAction()で返される値の最初の 8 ビットは、実際のアクション部分です。アクション マスク(= 11111111 = 255 = 0xff) を使用すると、アクションのみが残り、ポインター情報は残りません。
ここで&
は論理演算子ではなく算術演算子 (ビット単位) として使用されることに注意してください (single&
は、Java では完全に有効な論理演算子です&&
)。