【安杰秀坊】-003- 手势操作OnGestureListener的复用实现
来源:互联网 发布:过期已备案域名 编辑:程序博客网 时间:2024/05/08 00:05
Android系统的APP不同于ios的APP,由于Android手机带有物理返回键,所以在写Android应用的时候不需要硬搬iPhone的开发经验去写一个软返回键,更多的是去使用手势操作,这样既可以增加用户体验,又添加另外一种返回方式。
基本上都是用OnGestureListener来实现手势操作,不过如果开发一个程序中大量的使用的类似于左滑返回的效果时,可以考虑下面这种复用方式:
package com.toobur.app.activity;import com.toobur.app.tools.R;import android.app.Activity;import android.os.Bundle;import android.view.GestureDetector;import android.view.MotionEvent;import android.view.View;import android.view.GestureDetector.OnGestureListener;public class GestureDetectorActivity extends Activity{private GestureDetector gestureDetector = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);gestureDetector = new GestureDetector(this, new GestureListener());}@Overridepublic boolean onTouchEvent(MotionEvent event){return gestureDetector.onTouchEvent(event);}public class GestureListener implements View.OnTouchListener, OnGestureListener{@Overridepublic boolean onDown(MotionEvent arg0) {return false;}@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float X,float Y) {if(e1.getX() - e2.getX() > 100 && Math.abs(X) > 50){//判断为左滑toAction();}else if(e2.getX() - e1.getX() > 100 && Math.abs(X) > 50){}return false;}@Overridepublic void onLongPress(MotionEvent arg0) {}@Overridepublic boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,float arg3) {return false;}@Overridepublic void onShowPress(MotionEvent arg0) {}@Overridepublic boolean onSingleTapUp(MotionEvent arg0) {return false;}@Overridepublic boolean onTouch(View v, MotionEvent event) {gestureDetector.onTouchEvent(event);return false;}public void toAction(){finish();overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); }}}注:上述代码中finish()方法后面的Activity切换效果可以参考上一篇博客中的介绍。
该类的使用方法如下:
package com.toobur.app.function;import android.os.Bundle;import com.toobur.app.activity.GestureDetectorActivity;public class Test extends GestureDetectorActivity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}}实现自定义手势类,不需要做任何特殊操作,只需要一个继承就可以大功告成。
- 【安杰秀坊】-003- 手势操作OnGestureListener的复用实现
- OnGestureListener的手势分析
- Android FrameLayout OnGestureListener手势操作
- 操作手势的实现
- android 触摸手势 OnGestureListener
- Android OnGestureListener手势识别
- ViewFlipper结合手势OnGestureListener制作的滑动切换效果
- ViewFlipper结合手势OnGestureListener制作的滑动切换效果
- 利用OnGestureListener识别用户手势
- GestureDetector.OnGestureListener 触摸手势用法
- [iOS]手势操作实现图片的缩放
- ZoomImageView实现手势操作图片的单击
- 安卓中利用OnGestureListener对控件进行手势滑动事件的处理
- Android手势滑动GestureDetector和OnGestureListener(二)
- Android手势滑动GestureDetector和OnGestureListener(一)
- GestureDetector.OnGestureListener 详解 (手势解析器详解)
- Android OnGestureListener 判断手势上下滑动
- 手势监听之OnTouchListener与OnGestureListener
- Resources for embedded SQL engine
- vc编写动态链接库
- James Whittaker的软件测试戒律(一)
- 算法竞赛入门经典第四章笔记
- OCX 控件 发生 “ 灾难性故障 ”
- 【安杰秀坊】-003- 手势操作OnGestureListener的复用实现
- Modern C++ design 第5章 Command 设计模式
- 操作系统中磁盘调度算法(FIFO,SSTF,SCAN,C-SCAN)
- 什么是钩子程序
- android之intent的Flag详解
- 学习cordova
- MFC中解决基于对话框程序按下Enter,Esc程序自动退出的方法
- 监听总结之解析问题一:由sqlnet.ora文件寻到TNSNAME适配器程序来解析网络服务名为它的具体配置(×)
- setsockopt函数选项总结