多点触控时为什么会重复执行多次?
我最近在做多点触控相关的东西,需要获取手指落下的坐标,现在坐标能获取到了,但是很奇怪方法会被触发数次,两个手指触发一次,三个手指触发两次,四个手指触发三次,获取到的触点依次增加,例如四个手指按下,会执行三次,第一次获取到两个手指的点,第二次获取到三个手指的点,第三次才能获取到四个手指的点。
问:需要怎么才能把前面多余的触摸次数筛选掉,不然方法触发那么多次?
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
// 获得屏幕触点数量
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
// mode = 1;
break;
case MotionEvent.ACTION_POINTER_DOWN:
int pointerCount = event.getPointerCount();
point_Entities.clear();
for (int i = 0; i < pointerCount; i++) {
Point_Entity point_Entity = new Point_Entity();
point_Entity.setX(event.getX(i));
point_Entity.setY(event.getY(i));
point_Entities.add(point_Entity);
Log.i(this.getClass().getSimpleName(), "点" + (i + 1) + " x:" + point_Entities.get(i).getX() + " - y:"
+ point_Entities.get(i).getY());
}
Log.i(this.getClass().getSimpleName(), "================================");
break;
}
return super.onTouchEvent(event);
}
ZziYunn
9 years, 8 months ago