Multitouch android studios,实现

问题描述

我正在开发一个简单的移动应用程序,并且是第一次尝试使用多点触控。 我获取的信息来自https://developer.android.com/training/gestures/multi 但我似乎并没有完全理解它是如何工作的。

到目前为止我的实现:

 public boolean onTouchEvent(MotionEvent event) {

        switch (event.getActionMasked()) {
            case MotionEvent.ACTION_DOWN:
                if (event.getX() < screenX / 2) {
                    astronaut.isGoingUp = true;
                }
                break;
            case MotionEvent.ACTION_UP:
                astronaut.isGoingUp = false;
                if (event.getX() > screenX / 2) {
                    astronaut.toShot++;
                }
                break;
            case MotionEvent.ACTION_POINTER_DOWN:
                if (event.getX() > screenX / 2) {
                    astronaut.toShot++;
                } else if (event.getX() < screenX / 2) {
                    astronaut.isGoingUp = true;
                }

        }
        return true;
    }

现在前两个案例来自 youtube 教程,据我了解,它会在第一根手指触摸屏幕和最后一根手指离开屏幕时告诉程序。所以我的思路是简单地添加第三种情况来检查多根手指同时触摸屏幕,然后根据手指在屏幕上触摸的位置做一个单独的事情。

这不起作用,我想知道我缺少什么,据我所知,我可以从 getActionIndex() 获取事件数据,但我真的看不出有什么不同它会使得,我在第三种情况下检查的事件不总是一个额外的指针触摸屏幕的事件吗?

在第三种情况下使用 event.getX()错误的,还是我从不进入第三种情况?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...