触摸时检测手指开关

时间:2015-03-06 19:05:13

标签: android bitmap

我有一个位图,我可以在我的应用程序上拖动,但是有一个小错误,如果让某人用一根手指点击位图并开始移动它,然后移动它用另一根手指点击,位图"传送"在那边。如何检测用户是否切换手指使位图不会传送?这是我的Action_MOVE代码:

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;

1 个答案:

答案 0 :(得分:0)

来自documentation

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

指针的数量只会随着个别指针的变化而变化,除非手势被取消。

所以你想做的是只允许一个指针(手指)在任何给定的时间内运行。我似乎无法找到一个简单的解决方案,因此我们将使用一种解决方法:

每个指针都获得一个唯一的常量ID。在任何给定的触摸事件中,您将检查该指针是否启动了该事件,然后如果为true则消耗它,否则忽略。

有关此操作的完整示例,请查看Android开发人员blog