java - 关于多点触控问题

查看:112
本文介绍了java - 关于多点触控问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在MotionEvent.ACTION_POTITER_UP的时候怎么去获取屏幕上手指的坐标啊 比如两个手指
先按下一个 接着再按下一个 然后再把两个手指中随机的抬起一个 这样怎么去获取屏幕上未抬起来的手指的坐标啊直接在MotionEvent.ACTION_POINTER_UP中去event.getx();获取到的是第一次按下去的手指的坐标啊 或者说能不能分辨出我抬起的手指是第一次按下去的手指还是第二次按下去的手指啊

解决方案

一般实现滑动监听操作的View会保存一个mActivePointerId变量来记录活动手指。
这个变量一般在MotionEvent.ACTION_DOWN中获取:

mActivePointerId = MotionEventCompat.getPointerId(ev, 0);

而在MotionEventCompat.ACTION_POINTER_UP时,判断抬起手指是否是活动手指,如果是,则重新选择活动手指:

int pointerIndex = MotionEventCompat.getActionIndex(ev);
int pointerId = MotionEventCompat.getPointerId(ev, pointerIndex);
if (pointerId == mActivePointerId) {
    int newPointerIndex = pointerIndex == 0 ? 1 : 0;
    mActivePointerId = MotionEventCompat.getPointerId(ev, newPointerIndex);
}

这篇关于java - 关于多点触控问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆