1.OnTouchListener
In the OnTouch method, the difference between MotionEvent.getX() and MotionEvent.getRawX()
Action constant:
MotionEvent.ACTION_DOWN: This event will be triggered when the screen detects that the first touch point is pressed
MotionEvent.ACTION_MOVE: Triggered when the touch point moves on the screen, it will also be triggered when the touch point stays on the screen (even if we can't feel the movement, in fact our fingers are constantly shaking)
MotionEvent.ACTION_UP: Triggered when the contact is released
MotionEvent.ACTION_CANCEL: Not directly triggered by the user, but triggered by the system when needed, indicating that the gesture is cancelled