Android-多点触控时为什么会重复执行多次?
我最近在做多点触控相关的东西,需要获取手指落下的坐标,现在坐标能获取到了,但是很奇怪方法会被触发数次,两个手指触发一次,三个手指触发两次,四个手指触发三次,获取到的触点依次增加,例如四个手指按下,会执行三次,第一次获取到两个手指的点,第二次获取到三个手指的点,第三次才能获取到四个手指的点。
问:需要怎么才能把前面多余的触摸次数筛选掉,不然方法触发那么多次?
@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);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你看看单片机代码里有个按键防抖动,不加防抖也是会出现按一下响应几下。也就是加延时。