Android 触摸时检测手指开关

Android 触摸时检测手指开关,android,bitmap,Android,Bitmap,我有一个位图可以在我的应用程序上拖动,但是有一个小错误,如果有人用一个手指点击位图并开始移动它,然后在移动它的同时用另一个手指点击,位图“传送”在那里。我如何检测用户是否切换手指以使位图无法传送?这是我的动作代码: case MotionEvent.ACTION_MOVE: if (dragging) { CurrentMobEntry.getKey().x = (int) x - Curre

我有一个位图可以在我的应用程序上拖动,但是有一个小错误,如果有人用一个手指点击位图并开始移动它,然后在移动它的同时用另一个手指点击,位图“传送”在那里。我如何检测用户是否切换手指以使位图无法传送?这是我的动作代码:

case MotionEvent.ACTION_MOVE:
            if (dragging) {
                CurrentMobEntry.getKey().x = (int) x
                        - CurrentMobEntry.getValue().getNormalbit()
                                .getWidth() / 2; 
                CurrentMobEntry.getKey().y = (int) y
                        - CurrentMobEntry.getValue().getNormalbit()
                                .getHeight() / 2;
                CurrentMobEntry.getValue().getDestroyedP().x=(int)x
                        +CurrentMobEntry.getValue().getNormalbit()
                        .getWidth() / 2;
                CurrentMobEntry.getValue().getDestroyedP().y = (int)y
                + CurrentMobEntry.getValue().getNormalbit()
                        .getHeight() / 2;
            }
            break;
从:

某些设备可以同时报告多个移动轨迹。多触摸屏为每个手指发出一条运动轨迹。生成运动轨迹的单个手指或其他对象称为指针。运动事件包含有关当前处于活动状态的所有指针的信息,即使其中一些指针自上次事件传递后未移动

指针的数量只会随着单个指针的上下移动而变化一次,除非手势被取消。

因此,您要做的是在任何给定时间内只允许一个指针(手指)操作。我似乎找不到一个简单的解决方案,因此我们将使用一种变通方法:

每个指针都有一个唯一的、恒定的ID。在任何给定的触摸事件上,您将检查该指针是否启动了该事件,如果为true,则使用它,否则忽略它


有关此示例的完整信息,请查看Android开发者的。

是否没有从中提取手指数据?或者使用更高级别的框架将触摸转换为非常简单的格式?我处理过很多触摸操作,将触摸分成“手指”(基本上每个触摸都代表一个手指),然后我通常用第一个手指来处理你正在谈论的事情。这将防止“第二个”手指干扰您的位置计算。