一些Android设备在手指未移动时跳过onTouchEvent
我正在尝试制作一个android游戏,玩家可以通过触摸屏幕上的任何位置,按住触摸键并向任何方向拖动手指来移动角色。 所以我做了2个点来存储触摸的坐标。一个表示触摸事件开始的坐标,另一个表示手指现在所在的位置。 使用我的华硕transformer pad(当时是安卓4.2,现在是安卓4.3),这非常有效。但在2部智能手机上(有些LG采用安卓4.0,我的Nexus 5采用4.4),当手指不移动一帧时,触摸事件停止。 看起来onTouchEvent(MotionEvent)当时没有被调用 这是onTouchEvent函数:一些Android设备在手指未移动时跳过onTouchEvent,android,events,touch,Android,Events,Touch,我正在尝试制作一个android游戏,玩家可以通过触摸屏幕上的任何位置,按住触摸键并向任何方向拖动手指来移动角色。 所以我做了2个点来存储触摸的坐标。一个表示触摸事件开始的坐标,另一个表示手指现在所在的位置。 使用我的华硕transformer pad(当时是安卓4.2,现在是安卓4.3),这非常有效。但在2部智能手机上(有些LG采用安卓4.0,我的Nexus 5采用4.4),当手指不移动一帧时,触摸事件停止。 看起来onTouchEvent(MotionEvent)当时没有被调用 这是onTo
@Override
public boolean onTouchEvent(MotionEvent event) {
synchronized (getHolder()) {
if (getTouchStart() == null)
setTouchStart(new CPoint(event.getX(), event.getY()));
setTouch(new CPoint(event.getX(), event.getY()));
return true;
}
}
这就是画画时所说的:
if (getTouch() != null)
{
[unimportant drawing stuff]
}
else
setTouchStart(null);
setTouch(null);
(CPoint是我的点类,它存储接触的坐标)
因此,在另外两个设备上,仅当播放器从最后一个渲染帧开始移动手指时,才会调用onTouchEvent函数。否则触摸事件将完成,移动时将创建一个新的触摸事件
有没有办法避免这种行为?onTouchEvent应该可以在每个设备上工作
//对不起,我英语不好你有什么问题?我想避免上述问题。我需要知道,如果手指在一帧内没有移动,为什么onTouch不会在某些设备上启动