首页 > Android onTouch 的手势和点击

Android onTouch 的手势和点击

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

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

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

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


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

【热门文章】
【热门文章】