Android 如何获取移动手指的ID

Android 如何获取移动手指的ID,android,Android,在下面的代码中,我正在测试multi-touch。当第一个手指触摸屏幕时,我会得到该手指的ID,如果我也用第二个手指触摸屏幕,我也会得到该ID。但是当我移动手指时,我只得到ID 0,而没有任何ID 1,即第二个手指!我需要稍后将id传递给一个存储X和Y坐标的方法,并且我需要知道在屏幕上绘制哪个id 如何获取运动的正确ID @Override public boolean onTouch(View v, MotionEvent event) { synchronized (game

在下面的代码中,我正在测试multi-touch。当第一个手指触摸屏幕时,我会得到该手指的ID,如果我也用第二个手指触摸屏幕,我也会得到该ID。但是当我移动手指时,我只得到ID 0,而没有任何ID 1,即第二个手指!我需要稍后将id传递给一个存储X和Y坐标的方法,并且我需要知道在屏幕上绘制哪个id

如何获取运动的正确ID

    @Override
public boolean onTouch(View v, MotionEvent event) {
    synchronized (gameLoop) {
        for (int i = 0; i < event.getPointerCount() && i < 2; i++) {

            id = event.getPointerCount();

            // Check if finger touch screen
            if(event.getActionIndex() == i && (event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN || event.getActionMasked() == MotionEvent.ACTION_DOWN)) {

                int j = event.getPointerCount();
                int id = event.getPointerId(i);
                String numDown = Integer.toString(j);
                String sId = Integer.toString(id);
                Log.i("Test", "Number DOWN: " + numDown + " ID: " + sId);
            }

            // Check if finger moves on screen
            if(event.getActionIndex() == i && (event.getActionMasked() == MotionEvent.ACTION_MOVE)) {

                int id = event.getPointerId(i);
                String sId = Integer.toString(id);
                Log.i("Test", " Moving ID: " + sId);
            }

            // Check if finger leave screen
            if(event.getActionIndex() == i && (event.getActionMasked() == MotionEvent.ACTION_POINTER_UP || event.getActionMasked() == MotionEvent.ACTION_UP)) {

                int k = event.getPointerCount();
                int id = event.getPointerId(i);
                String numUp = Integer.toString(k);
                String sId = Integer.toString(id);
                Log.i("Test", "Number UP: " + numUp + " ID: " + sId);
            }
        }
    }
    return true;
}
@覆盖
公共布尔onTouch(视图v,运动事件){
已同步(gameLoop){
对于(int i=0;i
您不需要循环

公共最终int getPointerId(int pointerIndex)

参数指针索引要检索的指针的原始索引。价值可能是 从0(向下的第一个指针)到getPointerCount()-1

第一个手指
(event.getX(0),event.getY(0))

食指
(event.getX(1),event.getY(1))