我有一个位图,我可以在我的应用程序上拖动,但是有一个小错误,如果让某人用一根手指点击位图并开始移动它,然后移动它用另一根手指点击,位图"传送"在那边。如何检测用户是否切换手指使位图不会传送?这是我的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;
答案 0 :(得分:0)
某些设备可以同时报告多个移动轨迹。多点触摸屏为每个手指发出一个移动轨迹。生成运动轨迹的各个手指或其他对象称为指针。运动事件包含有关当前活动的所有指针的信息,即使其中一些指针自上次传递事件以来尚未移动。
指针的数量只会随着个别指针的变化而变化,除非手势被取消。
所以你想做的是只允许一个指针(手指)在任何给定的时间内运行。我似乎无法找到一个简单的解决方案,因此我们将使用一种解决方法:
每个指针都获得一个唯一的常量ID。在任何给定的触摸事件中,您将检查该指针是否启动了该事件,然后如果为true则消耗它,否则忽略。
有关此操作的完整示例,请查看Android开发人员blog。