java - 关于多点触控问题
迷茫
迷茫 2017-04-17 17:42:59
[Java讨论组]

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
黄舟

一般实现滑动监听操作的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);
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号