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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…