Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Android, what is the difference between getAction() and getActionMasked() in MotionEvent?

I am confused by the two methods in Android. It seems that both methods tell you what kind of event it is, i.e., whether it is a down or up event.

When will I use which?

public void onTouchEvent(MotionEvent e) 

Don't quote the documentation please, because I read it, and I don't see any parameter I can supply to either of the methods to get something different.

public final int getAction () 

and

public final int getActionMasked() 
like image 585
user1233587 Avatar asked Jun 29 '13 21:06

user1233587


People also ask

What is getActionMasked Android?

getAction() returns a pointer id and an event (i.e., up, down, move) information. getActionMasked() returns just an event (i.e., up, down, move) information. Other info is masked out.

What is getActionMasked?

Constant for getActionMasked() : The pointer is not down but has entered the boundaries of a window or view. int.


1 Answers

getAction() returns a pointer id and an event (i.e., up, down, move) information.

getActionMasked() returns just an event (i.e., up, down, move) information. Other info is masked out.

For example:

getAction() returns 0x0105.
getActionMasked() will return 0x0005, which is 0x0105 && ACTION_MASK.

  1. The value of ACTION_MASK is 0xFF. It masks the following actions.
    • ACTION_DOWN 0, UP 1, MOVE 2
    • ACTION_POINTER_DOWN 5, UP 6
  2. The value of ACTION_POINTER_ID_MASK is 0xFF00. It masked the pointer ID from following deprecated constants.
    • ACTION_POINTER_1_DOWN 0x0005
    • ACTION_POINTER_2_DOWN 0x0105
    • ACTION_POINTER_3_DOWN 0x0205
    • ...
like image 162
wannik Avatar answered Sep 28 '22 03:09

wannik