Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.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 安卓操作系统不移动';行不通_Android - Fatal编程技术网

Android 安卓操作系统不移动';行不通

Android 安卓操作系统不移动';行不通,android,Android,这可能是个愚蠢的问题,但我不知道为什么不采取行动。我需要使用触摸的x坐标更新变量,但当我按下并按住时,变量周围的移动不会改变 @Override public boolean onTouch(View v, MotionEvent event) { int ptrId = 0; int action = event.getAction(); switch (event.getAction() & event.ACTION_MASK) { case Mot

这可能是个愚蠢的问题,但我不知道为什么不采取行动。我需要使用触摸的x坐标更新变量,但当我按下并按住时,变量周围的移动不会改变

@Override
public boolean onTouch(View v, MotionEvent event) {
    int ptrId = 0;
    int action = event.getAction();

    switch (event.getAction() & event.ACTION_MASK) {
    case MotionEvent.ACTION_DOWN:
        screenTouches += 1;
        ourSurfaceView.screenTouched(event.getX(), event.getY());
        ourSurfaceView.screenTouched2(event.getX(), event.getY());
        break;
    case MotionEvent.ACTION_UP:
        screenTouches -= 1;
        ourSurfaceView.screenReleased(event.getX(), event.getY());
        ourSurfaceView.screenReleased2(event.getX(), event.getY());
        break;
    case MotionEvent.ACTION_POINTER_DOWN:
        ptrId = action >> MotionEvent.ACTION_POINTER_ID_SHIFT;
        screenTouches += 1;
        int ptrIdx = event.findPointerIndex(ptrId);
        ourSurfaceView.screenTouched(event.getX(ptrId), event.getY(ptrId));
        ourSurfaceView.screenTouched2(event.getX(ptrId), event.getY(ptrId));
        break;
    case MotionEvent.ACTION_POINTER_UP:
        ptrId = action >> MotionEvent.ACTION_POINTER_ID_SHIFT;
        screenTouches -= 1;
        ourSurfaceView.screenReleased(event.getX(ptrId), event.getY(ptrId));
        ourSurfaceView
                .screenReleased2(event.getX(ptrId), event.getY(ptrId));
        break;
    case MotionEvent.ACTION_MOVE:
        ourSurfaceView.screenMove(event.getX(ptrId), event.getY(ptrId));
        break;
    }

    return true;
}
编辑:


返回false;如果成功了,我的代码在其他地方出现了错误,所以我认为它不起作用。

我试过了,但不起作用:(我添加了Log.v(“Moveable”,“X=“+X+”Y=“+Y+”\n”);它很好地显示了坐标,因此我认为还有一个问题与您正在应用的掩码有关。我建议搜索(谷歌)以正确的方式处理手指的掩码。尝试返回false并删除event.ACTION\u mask。它应该可以工作