Ответ 1
Для создания нового события вы должны использовать один из статических методов obtain
класса MotionEvent
.
Самый простой способ (помимо обертывания нового события из существующего):
static public MotionEvent obtain(long downTime, long eventTime, int action,
float x, float y, int metaState) {
Документы API:
Создайте новый MotionEvent, заполнив подмножество основных значений движения. Те, которые не указаны здесь: устройство id (всегда 0), давление и размер (всегда 1), точность x и y (всегда 1) и edgeFlags (всегда 0).
Параметры:
-
downTime
Время (в мс), когда пользователь сначала нажал поток событий позиции. Эта должны быть получены из SystemClock.uptimeMillis(). -
eventTime
Время (в мс), когда это конкретное событие было сгенерировано. Это должно быть получено изSystemClock.uptimeMillis()
. -
action
Вид действия выполнено - одно изACTION_DOWN
,ACTION_MOVE
,ACTION_UP
илиACTION_CANCEL
. -
x
Координата X этого события. -
y
Координата Y этого события. -
metaState
Состояние любого мета/ модификаторы, которые действовали когда событие было создано.