首页 > 关于多点触控问题

关于多点触控问题

在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);
}
【热门文章】
【热门文章】