2 回答
TA贡献1798条经验 获得超3个赞
设置一个全局布尔值以了解何时MotionEvent.ACTION_DOWN
收到事件。
mUserTouched = true; // Set to true when MotionEvent.ACTION_DOWN mUserTouched = false; // set to false when MotionEvent.ACTION_UP is received
然后,您可能需要使用一个Timer
或其他一些循环程序,每当收到 MotionEvent.ACTION_DOWN 时,该循环程序就会首先启动。并让它根据某个时间间隔触发呼叫invalidate()
。invalidate()
将导致View.onDraw()
被调用,以便您可以重新绘制汽车的位置。当接收到 MotionEvent.ACTION_UP 时,取消Timer
mUserTouched = false'
如果有界限,那么每当MotionEvent
发生在界限之外时,您还需要进行设置。
TA贡献1815条经验 获得超6个赞
可以onTouch这样完成onTouchEvent:
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
// Player has touched the screen
case MotionEvent.ACTION_DOWN:
System.out.println("Hallo");
break;
// Player has removed finger from screen
case MotionEvent.ACTION_UP:
break;
}
return true;
}
添加回答
举报