Android: How to create a MotionEvent?

You should use one of the static obtain methods of the MotionEvent class to create a new event.

The simplest way (besides wrapping a new event from an existing one) is:

static public MotionEvent obtain(long downTime, long eventTime, int action,
        float x, float y, int metaState) {

API Docs:

Create a new MotionEvent, filling in a
subset of the basic motion values.
Those not specified here are: device
id (always 0), pressure and size
(always 1), x and y precision (always
1), and edgeFlags (always 0).

Parameters:

  • downTime The time (in ms) when the
    user originally pressed down to start
    a stream of position events. This
    must be obtained from
    SystemClock.uptimeMillis().
  • eventTime The the time (in ms) when
    this specific event was generated.
    This must be obtained from
    SystemClock.uptimeMillis().
  • action The kind of action being
    performed — one of either
    ACTION_DOWN, ACTION_MOVE,
    ACTION_UP, or ACTION_CANCEL.
  • x The X coordinate of this event.
  • y The Y coordinate of this event.
  • metaState The state of any meta /
    modifier keys that were in effect
    when the event was generated.

Link to API Docs

Leave a Comment