Android onTouch 的手势和点击

发布于 2022-08-31 09:21:55 字数 397 浏览 11 评论 0

这样一个需求,在 Surface 上需要识别上下左右、缩小放大的普通手势,还需要响应单击和双击。

我重写的 onTouch 事件,根据点个数和轨迹可以比较轻松的获取到上下左右和缩放手势,
但是跟之前绑定到 surface 的 onClick 就产生了上下消息传递的问题。

如果 onTouch 返回 false,点击事件虽然可以获取,但之前的手势就不能很好的识别了;
如果 onTouch 返回 true,点击事件就木有回调了。

肿么写才能让他们都被识别出来呢?
ps: 因为手势方面需要特定一些数值,所以没有用现成的类或方法,都是在回调中分析的点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

第七度阳光i 2022-09-07 09:21:55

你遇到的现象跟官方文档的说法是一致的,onTouch返回false一方面意味着触屏事件没有被消费,可以继续分配给OnClickListener处理,另一方面意味着你对该事件不感兴趣,不被计入手势识别中。所以官方就是这么设计的。
其实你没必要使用官方的OnClickListener,你可以自定义一个click手势和OnClickListener,比如一个ACTION_DOWN和ACTION_UP的组合作为一个click事件,并触发你自定义的OnClickListener。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文