关于直接在View中实现Gesture的功能

来源:互联网 发布:社区一键通告知书 编辑:程序博客网 时间:2024/05/17 23:29

想弄个拨动的效果,所以研究了一下GestureDetector的使用。

 

在网上找了一些资料,无非都是在Activity中增加一个GestureDetector实例,然后设置监听器,处理各类事件,等等。

 

一般可参考:

 

http://www.androidsnippets.org/snippets/19/

 

http://www.williamhua.com/2009/04/23/android-touchscreen-gesture-recogniton/

 

http://www.anddev.org/gesturedetector_and_gesturedetectorongesturelistener-t3204.html

 

但是,今天我要处理的是在自定义的ViewGroup中处理手势,所以打算将这个GestureDetector放在MyViewGroup中,结果却不如人意。

 

加Log跟了一下,看看OnTouchEvent的调用过程,发现问题出在:DOWN和UP事件,先由ViewGroup处理,再由Activity处理。但是MOVE事件则只有Activity中有表现,ViewGroup则没有动作。所以简单地将GestureDetector放在ViewGroup中,是只能得到OnDown和OnShowPress,得不到OnFlip和OnScroll。

 

我能想到的处理办法是在Activity中再将Move和Up传给ViewGroup。这样就OK了。

 

但是觉得这种方法不是很爽,有哪位同仁给点更好的办法?先谢过了。