java - 了解 Android 上的多点触控?

标签 java android

我找到这篇文章:http://android-developers.blogspot.ca/2010/06/making-sense-of-multitouch.html这有助于我的理解,但我仍然不确定如何做我想做的事情。

在我的游戏中,我有一个虚拟模拟摇杆和一些按钮。一次只能注册 2 个手指。这就是我要的。一根用于模拟摇杆,一根用于按钮。

我不确定的主要事情是,假设我将手指放在模拟摇杆上并四处移动,然后将手指放在按钮上,然后松开按钮,模拟摇杆应该会继续移动到我的第一个位置手指。

反之亦然,如果先触摸按钮然后触摸模拟摇杆,如果我松开模拟摇杆按钮仍应按下。

触摸指针在 Android 上是否以这种方式工作,例如,一旦我放下手指,无论我放下任何其他手指,它都会按顺序记住我的第一个手指并向下移动,移动向上移动事件?

谢谢

理想情况下,我希望我有这样的功能:

void onTouch(int fingerID, int action, int x, int y)
{

}

当该手指抬起时,每个放下的手指都会收到向下、移动和向上事件。

该游戏是一款赛车游戏,因此他们需要能够同时控制和插入 throttle 。

我的问题和这个类似 identified multi touch pointer in action_move

编辑:

我有这个代码:

private void onTouch(int finger, int action, float x, float y)
    {
        if(action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_POINTER_DOWN)
        {
            createInput(finger, x, y);
        }
        else if(action == MotionEvent.ACTION_MOVE)
        {
            inputMove(finger, x, y);
        }
        else if(action == MotionEvent.ACTION_UP  || action == MotionEvent.ACTION_POINTER_UP)
        {
            destroyInput(finger, x, y);
        }
    }

    public void onTouch(MotionEvent ev)
     {
         final int pointerCount = ev.getPointerCount();
         for (int p = 0; p < pointerCount; p++) {
             onTouch(ev.getPointerId(p), ev.getAction(), ev.getX(p), ev.getY(p));
         }
     }

但它只适用于第一个。

最佳答案

因此,根据 MotionEvent 类中给出的示例:

 public boolean onTouch(MotionEvent ev) {
     final int pointerCount = ev.getPointerCount();
     for (int p = 0; p < pointerCount; p++) {
         onTouch(ev.getPointerId(p), ev.getAction(), ev.getX(p), ev.getY(p));
     }
     return true;
 }

关于java - 了解 Android 上的多点触控?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12919054/

相关文章:

java - 如何加载包含变音符号的文件名的资源 JAR?

Android 从另一个 Intent 服务启动一个新的 Intent 服务是否可以接受,以及如何在完成后通知服务?

我的应用程序与 Java 7 不兼容的 Android Studio 错误

android - 过滤掉其他对象 - Android Open CV library

java - 当消息因队列大小而被拒绝时,RabbitMQ 不会导致发送失败

java - Selenium Webdriver 屏幕截图不显示驱动程序错误

Android 使用 android.content.Intent.ACTION_SEND 发送电子邮件(带/用户名和密码身份验证)

android - onTabSelected 选定未调用

java - 如何让JAXB正确生成XML?

java - 在 Java 中生成 PKCS#1 格式的 RSA key