你不应该那样做。如果您确实想以编程方式“触摸”您的视图,则应该将 onTouch 方法中发生的任何事情包装在另一个函数中(不带 MotionEvent 参数),并在您想要触摸您的视图时调用该函数。在没有真正触摸的情况下调用 onTouch 会给你带来负面的风格点
@Override
boolean onTouch(View v, MotionEvent me) {
return action(me.getX(),me.getY());
}
boolean action(int x, int y) {
//do some stuff
}
void somewhereelse() {
//Perform touch action
action(0,0);
}
如果您确实想“调度”触摸事件。你这样做:
View v;
v.dispatchTouchEvent(MotionEvent.obtain(0,0,MotionEvent.ACTION_DOWN, 100,100,0.5f,5,0,1,1,0,0));
这些值非常随机。仅 deviceId=0 表示以编程方式调度 Touch。