安卓在定义的view中实现手势识别上,下,左,右的功能
2016-01-20 10:31
375 查看
在安卓中自己做一个识别上下左右的功能
1.首先在全局变量中定义一个实例
//定义手势检测器实例
2.然后再该view的构造函数中创建出对象
3.接着在实现onGestureListener的方法
4.最后处理下点击事件
1.首先在全局变量中定义一个实例
//定义手势检测器实例
private GestureDetector mDetector;
2.然后再该view的构造函数中创建出对象
mDetector = new GestureDetector( this.onGestureListener);
3.接着在实现onGestureListener的方法
GestureDetector.OnGestureListener onGestureListener = new GestureDetector.OnGestureListener() { @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { float minMove = 100; //最小滑动距离 float minVelocity = 0; //最小滑动速度 float beginX = e1.getX(); float endX = e2.getX(); float beginY = e1.getY(); float endY = e2.getY(); if(beginX-endX>minMove&&Math.abs(velocityX)>minVelocity){ //左滑 System.out.println("左"); }else if(endX-beginX>minMove&&Math.abs(velocityX)>minVelocity){ //右滑 System.out.println("右"); }else if(beginY-endY>minMove&&Math.abs(velocityY)>minVelocity){ //上滑 System.out.println("上"); }else if(endY-beginY>minMove&&Math.abs(velocityY)>minVelocity){ //下滑 System.out.println("下"); return true; } };
4.最后处理下点击事件
//交由手势探测接口处理触摸事件 public boolean onTouchEvent(MotionEvent event) { mDetector.onTouchEvent(event); return true; }
相关文章推荐
- 【Android开发经验】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
- 生成和打上patch的方法
- Android 通过子线程加载URL图片
- Bitmap recycle方法与制作Bitmap的内存缓存
- Spring注解详解
- 【leetcode】Sum Root to leaf Numbers
- hibernate中in查询
- js加、减、乘、除的精度问题
- css3动画简介以及动画库animate.css的使用
- 上位机串口通信
- js类和对象
- Oracle用户被锁定解决方法
- 3997: [TJOI2015]组合数学 DP Dilworth定理
- 自己的第一篇博客
- Linux PCI网卡驱动的详细分析
- 比特币github地址
- Android42_Gesture手势
- FragmentTransaction与Fragment生命周期的关系
- 为文字添加下划线和中划线
- Mac安装Brew