我如何获得移动手指的ID [英] How do I get the ID of the moving finger

查看:130
本文介绍了我如何获得移动手指的ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在code下面我测试多点触摸。当第一个手指触摸屏幕时,我得到的手指的ID,如果我也有第二手指触摸屏幕时,我得到的ID为好。但是当我移动手指,我只得到了ID为0,而不是任何的ID 1,第二次手指!我以后需要通过id来存储X和Y坐标的方法,我需要知道的ID在屏幕上绘制。

我如何得到正确的ID为运动?

  @覆盖
公共布尔onTouch(视图V,MotionEvent事件){
    同步(gameLoop){
        对(INT I = 0; I&下; event.getPointerCount()及&放大器;我2;我++){            ID = event.getPointerCount();            //检查手指的触摸屏
            如果(event.getActionIndex()== I和及(event.getActionMasked()== MotionEvent.ACTION_POINTER_DOWN || event.getActionMasked()== MotionEvent.ACTION_DOWN)){                INT J = event.getPointerCount();
                INT ID = event.getPointerId(ⅰ);
                字符串numDown = Integer.toString(J);
                字符串SID = Integer.toString(ID);
                Log.i(测试,数下来:+ numDown +ID:+ SID);
            }            //检查手指在屏幕上移动
            如果(event.getActionIndex()== I和及(event.getActionMasked()== MotionEvent.ACTION_MOVE)){                INT ID = event.getPointerId(ⅰ);
                字符串SID = Integer.toString(ID);
                Log.i(测试,移动ID:+ SID);
            }            //检查手指离开屏幕
            如果(event.getActionIndex()== I和及(event.getActionMasked()== MotionEvent.ACTION_POINTER_UP || event.getActionMasked()== MotionEvent.ACTION_UP)){                INT K = event.getPointerCount();
                INT ID = event.getPointerId(ⅰ);
                字符串numUp = Integer.toString(K);
                字符串SID = Integer.toString(ID);
                Log.i(测试,数了起来:+ numUp +ID:+ SID);
            }
        }
    }
    返回true;
}


解决方案

您并不需要循环


  

公众最终诠释getPointerId(INT pointerIndex)


  
  

指针检索参数pointerIndex生指数。值可以
  从0(第一个指针是向下)getPointerCount() - 1


先以手指(event.getX(0),event.getY(0))

第二根手指(event.getX(1),event.getY(1))

In the code below I'm testing multi touch. When the first finger touch the screen, I get the ID of that finger and if I also touch the screen with a second finger, I get that ID as well. But When I move the fingers, I only get the ID 0 and not any for ID 1, the second finger! I need to pass the id later to an method that stores the X and Y coordinates and I need to know which ID that draws on the screen.

How do I get the correct ID for the movement?

    @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;
}

解决方案

You didn't need for-loop

public final int getPointerId (int pointerIndex)

Parameters pointerIndex Raw index of pointer to retrieve. Value may be from 0 (the first pointer that is down) to getPointerCount()-1.

First finger (event.getX(0),event.getY(0))

Second finger (event.getX(1),event.getY(1))

这篇关于我如何获得移动手指的ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆