2013-05-09 2 views
11

아래 두 가지 방법의 차이점은 무엇입니까?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 비트는 실제 작업 부분이며, 실제 작업 및 포인터 식별자를 분리하는 데 사용되는 따라서 비트 단위로 AND-action mask (= 11111111 = 255 = 0xff)을 지정하면 작업과 포인터 정보가 남습니다. (&& 한, 자바에서 완벽하게 유효한 논리 연산자는 & 단일)

& 산술 연산자 (비트)가 아닌 논리 연산자로 사용되는 것을 여기 명심하십시오 .`

+1

좋아요,하지만 직접 Action2와 MotionEvent.ACTION_MOVE를 비교할 수 있기 때문에 마스킹의 요지는 알지 못합니다. – iCould7

+2

대부분의 경우 멀티 터치를 지원하지 않는 경우에는 사용할 필요가 없습니다. –