хотите вызвать событие on two fingers down
на несколько миллисекунд.Событие триггера ACTION_POINTER_DOWN программно
Я могу вызвать простое касание событие, используя этот код
objImageView.getLocationOnScreen(coords);
int xa = coords[0];
int ys = coords[1];
objImageView.dispatchTouchEvent(MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, xa, ys, 0.5f, 5, 0, 1, 1, 0, 0));
objImageView.dispatchTouchEvent(MotionEvent.obtain(0, 0, MotionEvent.ACTION_MOVE, xa, ys, 0.5f, 5, 0, 1, 1, 0, 0));
objImageView.dispatchTouchEvent(MotionEvent.obtain(0, 0, MotionEvent.ACTION_UP, xa, ys, 0.5f, 5, 0, 1, 1, 0, 0));
Теперь, если я пытаюсь сделать то же самое для ACTION_POINTER_DOWN ничего не происходит. Вот мой код:
int[] coords = new int[2];
parentLayout.getLocationOnScreen(coords);
int xa = coords[0];
int ys = coords[1];
parentLayout.dispatchTouchEvent(MotionEvent.obtain(0, 0, MotionEvent.ACTION_POINTER_DOWN, xa, ys, 0.5f, 5, 0, 1, 1, 0, 0));
parentLayout.dispatchTouchEvent(MotionEvent.obtain(0, 0, MotionEvent.ACTION_MOVE, xa, ys, 0.5f, 5, 0, 1, 1, 0, 0));
parentLayout.dispatchTouchEvent(MotionEvent.obtain(0, 0, MotionEvent.ACTION_POINTER_UP, xa, ys, 0.5f, 5, 0, 1, 1, 0, 0));
Я Google, но не смог найти ничего, чтобы попробовать. Я хочу вызвать одно и то же событие, которое вызывается, когда пользователь помещает два пальца вниз и удерживает их в течение нескольких миллисекунд.
Заранее спасибо.
Ну, я все еще не могу выполнить действие. На данный момент я настоятельно призываю коды TouchListener, написав их другим методом. –
Почему именно вы используете указатель действия?Если вы хотите запускать каждые несколько миллисекунд, используйте поток с таймером или другим событием синхронизации. Извлеките код onTouch в пустоту и запускайте его из обоих потоков и onTouch – Zoe