Jaka jest różnica między tymi dwoma podejściami poniżej?Różnica w używaniu metody MotionEvent.getAction()
int action1 = event.getAction() & MotionEvent.ACTION_MASK;
int action2 = event.getAction();
Jaka jest różnica między tymi dwoma podejściami poniżej?Różnica w używaniu metody MotionEvent.getAction()
int action1 = event.getAction() & MotionEvent.ACTION_MASK;
int action2 = event.getAction();
ACTION_MASK
służy do oddzielania właściwe działanie i wskaźnik identyfikator (na przykład pierwszy palec dotknięciu drugi palec dotyku itp) pierwszy 8 bitów wartości zwróconej w getAction() jest rzeczywista część działania i więc gdy bitowe - I to z action mask (= 11111111 = 255 = 0xff), pozostaje tylko akcja i żadna z informacji wskaźnika.
Należy pamiętać tutaj, że &
służy jako arytmetycznego operatora (mnożenie), a nie operator logiczny (jeden &
jest całkowicie poprawny operator logiczny w Javie, jak &&
) .`
Ok, ale nie wiem jaki jest punkt maskowania, ponieważ mogę porównać bezpośrednio action2 z MotionEvent.ACTION_MOVE – iCould7
Nie musisz go używać, jeśli w większości przypadków nie obsługujesz multitouch. –
Uwaga: 'zdarzenia. getAction() i MotionEvent.ACTION_MASK' są takie same, jak 'getActionMasked()'. Zobacz również [to pytanie] (https://stackoverflow.com/q/17384983/3681880). – Suragch