Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一些Android设备在手指未移动时跳过onTouchEvent_Android_Events_Touch - Fatal编程技术网

一些Android设备在手指未移动时跳过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

我正在尝试制作一个android游戏,玩家可以通过触摸屏幕上的任何位置,按住触摸键并向任何方向拖动手指来移动角色。 所以我做了2个点来存储触摸的坐标。一个表示触摸事件开始的坐标,另一个表示手指现在所在的位置。 使用我的华硕transformer pad(当时是安卓4.2,现在是安卓4.3),这非常有效。但在2部智能手机上(有些LG采用安卓4.0,我的Nexus 5采用4.4),当手指不移动一帧时,触摸事件停止。 看起来onTouchEvent(MotionEvent)当时没有被调用

这是onTouchEvent函数:

@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不会在某些设备上启动