我想用我的代码用不同的MotionEvent对象调用onTouchEvent(MotionEvent事件)吗?

时间:2013-06-20 14:06:24

标签: android ontouchevent simulate motionevent

我想在代码中模拟触摸事件,换句话说,就是在屏幕上扫描。

我想在我的代码中触发方法public boolean onTouchEvent(MotionEvent event),但MotionEvent对象应该具有所需的值以模拟屏幕上的扫描(例如从左到右扫描)。

我读了this条目,但我认为这只在制作Android单元测试时很有用,我需要从代码的任何部分调用此方法来随时模拟滑动。

我想知道这是否可行。提前谢谢。

2 个答案:

答案 0 :(得分:1)

感谢Diogo Bento。我的代码有一些东西:它不是OnTouchEvent。它是一个GestureDetector.OnGestureListener。我试着调用onSingelTapUp()。

long time =System.currentTimeMillis();
MotionEvent motionEvent = MotionEvent.obtain( time, time+1, MotionEvent.ACTION_DOWN, 0, 0, 0);
view.last.dispatchTouchEvent(motionEvent);
MotionEvent motionEvent1 = MotionEvent.obtain( time+1, time+2, MotionEvent.ACTION_UP, 0, 0, 0);
view.dispatchTouchEvent(motionEvent1);

答案 1 :(得分:0)

How to simulate a touch event in Android?

MotionEvent motionEvent = MotionEvent.obtain(
    downTime, 
    eventTime, 
    MotionEvent.ACTION_UP, 
    x, 
    y, 
    metaState
);

// Dispatch touch event to view
view.dispatchTouchEvent(motionEvent);