GestureDetector类定义了许多触摸事件。包括
1.boolean onDoubleTap(MotionEvent e)解释:双击的第二下Touch down时触发
2.boolean onDoubleTapEvent(MotionEvent e)解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。
3.boolean onDown(MotionEvent e)解释:Touch down时触发
4.boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)解释:Touch了滑动一点距离后,up时触发。
5.void onLongPress(MotionEvent e)解释:Touch了不移动一直Touch down时触发
6.boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)解释:Touch了滑动时触发。
7.void onShowPress(MotionEvent e)解释:Touch了还没有滑动时触发(与onDown,onLongPress)比较onDown只要Touch down一定立刻触发。而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。所以Touchdown后一直不 滑动,onDown->onShowPress->onLongPress这个顺序触发。
8.boolean onSingleTapConfirmed(MotionEvent e)
9.boolean onSingleTapUp(MotionEvent e)解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。
点击一下非常快的(不滑动)Touchup:onDown->onSingleTapUp->onSingleTapConfirmed
点击一下稍微慢点的(不滑 动)Touchup:onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
GestureDetector探测当前用户各种不同的操作手势,通过 GestureDetector.OnGestureListener callback来获取当前被触发的操作手势(Single Tap Up、Show Press、Long Press、Scroll、Down、Fling)。
使用方法:
01.private GestureDetector mGestureDetector; 02.@Override03.public void onCreate(Bundle savedInstanceState) { 04. super.onCreate(savedInstanceState); 05. mGestureDetector = new GestureDetector(this, new LearnGestureListener()); 06.} 07.@Override08.public boolean onTouchEvent(MotionEvent event) { 09. if (mGestureDetector.onTouchEvent(event)) 10. return true; 11. else12. return false; 13.} 14.class LearnGestureListener extends GestureDetector.SimpleOnGestureListener{ 15. @Override16. public boolean onSingleTapUp(MotionEvent ev) { 17. Log.d("onSingleTapUp",ev.toString()); 18. return true; 19. } 20. @Override21. public void onShowPress(MotionEvent ev) { 22. Log.d("onShowPress",ev.toString()); 23. } 24. @Override25. public void onLongPress(MotionEvent ev) { 26. Log.d("onLongPress",ev.toString()); 27. } 28. @Override29. public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 30. Log.d("onScroll",e1.toString()); 31. return true; 32. } 33. @Override34. public boolean onDown(MotionEvent ev) { 35. Log.d("onDownd",ev.toString()); 36. return true; 37. } 38. @Override39. public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 40. Log.d("d",e1.toString()); 41. Log.d("e2",e2.toString()); 42. return true; 43. } 44.}说明:在当前类中创建一个GestureDetector实例。1.private GestureDetector mGestureDetector;创建一个Listener来实时监听当前面板操作手势。1.class LearnGestureListener extends GestureDetector.SimpleOnGestureListener在初始化时,将Listener实例关联当前的GestureDetector实例。1.mGestureDetector = new GestureDetector(this, new LearnGestureListener());利用onTouchEvent方法作为入口检测,通过传递MotionEvent参数来监听操作手势。1.mGestureDetector.onTouchEvent(event)
分享到:
相关推荐
GestureDetector类及其用法.pdf
GestureDetector类及其用法.doc
Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。虽然他能识别手势,但是不同的手势要...
通过GestureDetector的构造方法可以将SimpleOnGestureListener对象传递进去,这样GestureDetector能处理不同的手势了。
主要为大家详细介绍了Android手势识别器GestureDetector的使用方法解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例讲述了Android编程使用GestureDetector实现简单手势监听与处理的方法。分享给大家供大家参考,具体如下: 添加手势识别监听步骤: 一、给相应的控件添加触摸监听事件, 二、利用GestureDetector转发这个触摸...
做了一个项目,首页是使用ResideMenu实现,通过菜单栏里的菜单项创建的Fragment;... 方法如下: 在activity的oncreate()中初始化手势...然后写一个类继承手势监听器,当然你也可以采用匿名的方法: /****************
很多网友发现Android中手势识别提供了两个类,由于Android 1.6以下的版本比如cupcake中无法使用android.view.GestureDetector,而 android.gesture.Gesture是Android 1.6开始支持的,考虑到仍然有使用Android 1.5...
主要介绍了android使用手势识别的方法,介绍了单击触摸屏触发的事件和双击事件的使用等方法,大家参考使用吧
使用方法和setInAnimation方法一样。 showNext:调用该方法可以显示FrameLayout里面的下一个View。 showPrevious:调用该方法可以来显示FrameLayout里面的上一个View。 以及它的属性: 属性名称 描述 ...
使用方法和setInAnimation方法一样。 showNext:调用该方法可以显示FrameLayout里面的下一个View。 showPrevious:调用该方法可以来显示FrameLayout里面的上一个View。 以及它的属性: 属性名称 描述 ...
(超高仿)今日头条 客户端源码最终版 完美实现了获取数据,页面展示,远程同步信息,频道设置,珍惜资源...7.GestureDetector手势类及OnGestureListener手势监听类的使用 实现:新闻详情页面根据手势滑动来关闭该页面
|--手势识别器GestureDetector的用法 |--拍照之调用系统相机并显示及保存 |--拨打电话 |--按健之长按menu事件屏蔽 |--按健监听按返回健回桌面 |--搜索之调用系统Searchable的用法 |--数据库CURD通过execSQL与...
火种卡嗨! 在展示了我正在使用的应用程序Focus for ...界面(不起作用,不是重点),我发现了两种方法(可能还有更多方法)使用Draggable使用GestureDetector和Alignment(我在我的应用中使用的方式)PS:使用appB
它只需使用addView方法添加几个View,每个View对应的是一个页面,即可完成对于多页面的管理,,, 在android上实现手势的识别也比较简单,可以实现OnTouchListener和OnGuestureListener接口, 然后在OnTouch函数中...
这似乎可以通过使用GestureDetector及其onTap方法而不是InkWell来解决。 请参阅以下问题: 用法要使用此插件,请 中将drag_and_drop_lists添加为 依赖项。 例如: dependencies: drag_and_drop_lists: ^0.2.1
除了经常使用GestureDetector和onInterceptTouchEvent之外, 几乎很少有人使用新的API, 要不然的话, 实现就复杂. 事实上真的有十分简单的方式在RecyclerView上面添加这两个功能. 它只要求一个类, 而且这个类已经是...