16

以下の2つのアプローチの違いは何ですか?

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

 int action2 = event.getAction();
4

1 に答える 1

17

ACTION_MASK、実際のアクションとポインター識別子 (たとえば、最初の指が触れた、2 番目の指が触れたなど) を分離するために使用されます。getAction()で返される値の最初の 8 ビットは、実際のアクション部分です。アクション マスク(= 11111111 = 255 = 0xff) を使用すると、アクションのみが残り、ポインター情報は残りません。

ここで&は論理演算子ではなく算術演算子 (ビット単位) として使用されることに注意してください (single&は、Java では完全に有効な論理演算子です&&)。

于 2013-05-09T15:07:46.087 に答える