2013-05-09 14 views
11

以下の2つのアプローチの違いは何ですか?MotionEvent.getAction()メソッドの使用の違い

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

int action2 = event.getAction(); 
+0

注: 'イベントを。 getAction()&MotionEvent.ACTION_MASK'は 'getActionMasked()'と同じです。 [この質問](https://stackoverflow.com/q/17384983/3681880)も参照してください。 – Suragch

答えて

13

ACTION_MASKは、(例えば、第1の指が触れた、第二指が触れ、等)getAction()に返された値の最初の8ビットは、実際の作用部であり、実際の行動とポインタ識別子を分離するために使用されますだからaction mask(= 11111111 = 255 = 0xff)とビット単位でANDしたときは、アクションとポインタ情報は残っていません。 (&&あるとして、Javaで完全に有効な論理演算子がある&シングル)

&は、算術演算子(ビット単位)とない論理演算子として使用されていることを、ここで覚えておいてください.`

+1

しかし、私はMotion2をMotionEvent.ACTION_MOVEと直接比較できるので、マスキングのポイントを知りません。 – iCould7

+2

ほとんどの場合、マルチタッチをサポートしていない場合は使用する必要はありません。 –

関連する問題