Android之GestureDetector基本应用
来源:互联网 发布:sql合并两个字段 编辑:程序博客网 时间:2024/05/22 16:00
Android对于手势的检测提供了一系列的API,其中包括对于手势检测的监听器、对于手势识别的API等等。
本篇主要介绍手势检测监听器GestureDetector类的基本使用。
Android为手势检测提供了一个GestureDetector类,GestureDetector实例代表了一个手势检测器。
GestureDetector这个类对外提供了两个接口和一个外部类,其中包括:
接口:OnGestureListener,OnDoubleTapListener
内部类:SimpleOnGestureListener
对于OnGestureListener基本使用:
首先在MainActivity中定义我们的手势监听器,并让当前的Activity来实现监听接口:
//定义手势监听器 GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gestureDetector=new GestureDetector(this,this); }
实现接口中的回调方法:
//当手指按下的时候触发下面的方法 @Override public boolean onDown(MotionEvent e) { System.out.println("onDown"); return false; } //当用户手指在屏幕上按下,而且还未移动和松开的时候触发这个方法 @Override public void onShowPress(MotionEvent e) { System.out.println("onShowPress"); } //当手指在屏幕上轻轻点击的时候触发下面的方法 @Override public boolean onSingleTapUp(MotionEvent e) { System.out.println("onSingleTapUp"); return false; } //当手指在屏幕上滚动的时候触发这个方法 @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { System.out.println("onScroll"); return false; } //当用户手指在屏幕上长按的时候触发下面的方法 @Override public void onLongPress(MotionEvent e) { System.out.println("onLongPress"); } //当用户的手指在触摸屏上拖过的时候触发下面的方法,velocityX代表横向上的速度,velocityY代表纵向上的速度 @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { System.out.println("onFling"); return false; }
最后将Activity中的OnTouchEvent事件交给手势监听器处理:
@Override public boolean onTouchEvent(MotionEvent event) { return gestureDetector.onTouchEvent(event); }
对于OnDoubleTapListener基本使用:
同样的让MainActivity也实现OnDoubleTapListener接口。
public class MainActivity extends Activity implements OnGestureListener,OnDoubleTapListener
实现对应的抽象方法:
//当手机屏幕接收到单击事件,也就是当手指在点击了手机屏幕之后在一定时间内没有接受到第二次的单击事件时触发下面的方法 //当如果手机接收到的是双击事件,在每次双击的第一次的点击的时候会唯一的触发下面的方法 @Override public boolean onSingleTapConfirmed(MotionEvent e) { System.out.println("onSingleTapConfirmed"); return false; } //当系统接受到双击事件的时候会在两次点击之间触发一次下面的方法 @Override public boolean onDoubleTap(MotionEvent e) { System.out.println("onDoubleTap"); return false; } //当系统接收到双击事件的时候,在每一次的结束触发下面的方法一次 @Override public boolean onDoubleTapEvent(MotionEvent e) { System.out.println("onDoubleTapEvent"); return false; }
同样要将具体的触摸事件交由GestureDetector检测器来处理。
下面简要介绍一下SimpleOnGestureListener,此类用法非常简单。首先我们可以看到对于实现两个接口来实现事件的监听回调的方式来处理用户的手势,我们都需要强制重写多个抽象方法,然而我们可能不需要这么多。SimpleOnGestureListener实现了两个接口,但是对于所有的抽象方法的实现都是空的,当我们需要实现特定的几个方法的时候我们就可以继承此类而不是实现接口了。
0 0
- Android之GestureDetector基本应用
- android GestureDetector应用
- android之GestureDetector
- android GestureDetector应用(手势识别)
- Android手势使用之 GestureDetector
- Android手势识别之GestureDetector
- 【Android】 Android 滑动效果之ViewFlipper+GestureDetector
- Android 之手势识别篇-GestureDetector
- Android UI 之 ViewFlipper 和 GestureDetector
- Android手势ImageView之(自定义GestureDetector)
- Android GestureDetector
- Android GestureDetector
- Android - GestureDetector
- 疯狂android之android应用基本组件
- GestureDetector应用实例
- GestureDetector简单应用
- 手势检测GestureDetector应用
- Android SQLite数据库应用之基本介绍
- [子集DP 斯坦纳树 模板题] HDU 4085 Peach Blossom Spring & BZOJ 4006 [JLOI2015]管道连接
- openvswitch vlan port 模式解析
- linux socket 编程(C语言)
- 串的简单处理
- Java--static关键字,main方法说明
- Android之GestureDetector基本应用
- JavaScript-基础(二)
- 冒泡排序
- Android 微信热修复 Tinker 接入过程及使用方法
- Java程序员面试题集(1-50)
- 图结构练习——BFS——从起始点到目标点的最短步数
- webpack的commonchunkplugin深度解析以及chunk和module内部结构
- python3+PyQt5 自定义窗口部件--创建复合窗口部件
- 4. Redis与Java的使用