Android中的手势识别
16lz
2021-01-23
Android手势概述
用户对手机的触摸可以延伸出很多的手势,下图为Android中手势图
在Android项目中,如果要自己写Touch事件来开发手势,难度很大,Android提供了手势识别器来 帮助开发者来快发 ,则对于手势的开发变的非常简单。
具体代码实现
如下代码是针对于安卓中的滑动手势开发
GestureDetector mGestureDetector = null;............{............mGestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {/** * 参数1:手放在手机上的第一个点 * 参数2:手滑动后的到达的点 * 参数3:手在手机上X轴上滑动的距离 * 参数4:手在手机上Y轴上滑动的距离 */@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {/* 向左滑动屏幕,>50表示滑动距离超过50有效 */if ((e2.getX() - e1.getX()) > 50) {// TODO 这里写当手势向左边滑动时的代码return true; // 返回true,则将当前的时间消费}if (e1.getX() - e2.getX() > 50) {// TODO 这里写手势向右滑动时的代码return true;}return super.onFling(e1, e2, velocityX, velocityY);}});}
写完以上代码并不是就完事了,我们知道,Android中的触摸事件都在OnTouchEvent()方法中来处理,所以不要忘记下面的代码
/** 如果想让屏幕触摸事件有效,必须重写这个方法 */@Overridepublic boolean onTouchEvent(MotionEvent event) {// 重写后方法后需要在里面添加mGestureDetector.onTouchEvent(event);return super.onTouchEvent(event);}
写到这里,就完成了在屏幕上左右滑动的手势识别代码
##总结:
GestureDetector:Android提供的用户手势识别器,通过TouchEvent来处理用户对Actvity的Touch事件。
SimpleOnGestureListener():传入识别器内部的默认监听器,开发者需要处理那个手势,就重写器相对应的方法,例如,以上的代码为需要处理左右滑动的手势,所以在其内部重写了onFling方法。
MotionEvent: 其内部封装了用户对Activity的点击的点击位置,所以,可以通过getRawX获取点击位置的x坐标,getRawY来获取点击位置的y坐标
更多相关文章
- Android离线安装方法
- 【Android】注解框架(四)-- 一行代码注入微信支付
- 丢失Android系统库或者Conversion to Dalvik format failed with
- Android编程简单设置ListView分割线的方法
- android通过代码来开启和关闭移动网络
- [android][利用JNI技术在Android中调用、调试C++代码]