Android onTouch 的手势和点击
这样一个需求,在 Surface 上需要识别上下左右、缩小放大的普通手势,还需要响应单击和双击。
我重写的 onTouch
事件,根据点个数和轨迹可以比较轻松的获取到上下左右和缩放手势,
但是跟之前绑定到 surface 的 onClick
就产生了上下消息传递的问题。
如果 onTouch
返回 false
,点击事件虽然可以获取,但之前的手势就不能很好的识别了;
如果 onTouch
返回 true
,点击事件就木有回调了。
肿么写才能让他们都被识别出来呢?
ps: 因为手势方面需要特定一些数值,所以没有用现成的类或方法,都是在回调中分析的点
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你遇到的现象跟官方文档的说法是一致的,onTouch返回false一方面意味着触屏事件没有被消费,可以继续分配给OnClickListener处理,另一方面意味着你对该事件不感兴趣,不被计入手势识别中。所以官方就是这么设计的。
其实你没必要使用官方的OnClickListener,你可以自定义一个click手势和OnClickListener,比如一个ACTION_DOWN和ACTION_UP的组合作为一个click事件,并触发你自定义的OnClickListener。