【发布时间】:2017-03-02 09:09:49
【问题描述】:
想要触发on two fingers 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));
我想触发当用户将两根手指向下并在那里按住几毫秒时调用的相同事件。
【问题讨论】:
-
好吧,我仍然无法执行该操作,目前,我通过将它们写入其他方法来强制调用TouchListener的代码。
-
为什么要使用动作指针?如果您希望能够每隔几毫秒触发一次,请使用带有 Timer 或其他计时事件的线程。将 onTouch 代码提取到一个 void 中,并从线程和 onTouch 触发它
标签: android android-touch-event