A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴光新 黑马帝   /  2013-8-22 12:08  /  2050 人查看  /  11 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

google提供的API中,有个类,大家都很熟悉,GestureDetector。使用它,我们可以识别用户通常会用的手势。但是,这个类不支持多点触摸(可能google认为没有人会在几个手指都在屏幕上的时候,使用手势吧~),不过,最近和朋友们一起做的一个App,的确用到了多点手势(主要是onScroll和onFling两个手势),所以,我就把这个类拓展了一下,来实现让多个控件各自跟着一跟手指实现拖动和滑动的效果。

顺便说一下,大家应该都知道,在Android3.0以后,Android的触摸事件的分配机制和以前的版本是有区别的。从3.0开始,用户在不同控件上操作产生的touch消息不会相互干扰,touch消息会被分派到不同控件上的touchListener中处理。而
在以前的版本中,所有的touch消息,都会被分排到第一个碰到屏幕的手指所操作的控件的touchListener中处理,也就是说,会出现这样一个矛盾的现象:在界面上有A,B,C三个控件,然后,当你先用食指按住A,跟着又用中指和无名指(嘛,别的手指也行,不用在意中指还是无名指)按住B,C。当中指和无名指移动的时候,B和C都无法接收到这个ACTION_MOVE消息,而接收到消息的却是A。而在3.0以上版本中,并不存在这个问题。

使用以下的这个类,可以实现从2.2到3.2平台上手势识别的兼容。
   

源码下载:
游客,如果您要查看本帖隐藏内容请回复

11 个回复

正序浏览
多谢分享
回复 使用道具 举报
111111111111111111111111111111111111111
回复 使用道具 举报
:)                                                   
回复 使用道具 举报
进来看了一下,不错不错
回复 使用道具 举报
程彬 初级黑马 2014-2-10 10:18:35
7#
kanakn看看
回复 使用道具 举报
来学习了。
回复 使用道具 举报
回复 使用道具 举报
kankan!!!!!!!!!!!!!
回复 使用道具 举报
学习学习
回复 使用道具 举报
回复 使用道具 举报
来瞧瞧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马