Android View进行手势识别详解

 更新时间:2016年08月21日 16:19:51   投稿:lqh  
本文主要介绍 Android View进行手势识别,这里整理了相关资料和简单示例,有兴趣的小伙伴可以参考下

       我们在进行Android游戏开发时会用到很多种控制,包括前面讲到的按键和轨迹球控制方式,除此之外还有手势操作、重力感应等多种控制方式需要了解掌握。本节主要为大家讲解在View中如何进行手势识别。

       很多网友发现Android中手势识别提供了两个类,由于Android 1.6以下的版本比如cupcake中无法使用android.view.GestureDetector,而android.gesture.Gesture是Android 1.6开始支持的,考虑到仍然有使用Android 1.5固件的网友,就来看下兼容性更强的android.view.GestureDetector。在android.view.GestureDetector类中有很多种重载版本,下面我们仅提到能够自定义在View中的两种方法,分别为GestureDetector(Context context, GestureDetector.OnGestureListener listener) 和GestureDetector(Context context, GestureDetector.OnGestureListener listener, Handler handler) 。我们可以看到第一个参数为Context,所以我们想附着到某View时,最简单的方法就是直接从超类派生传递Context,实现GestureDetector里中提供一些接口。

       下面我们就以实现手势识别的onFling动作,在CwjView中我们从View类继承,当然大家可以从TextView等更高层的界面中实现触控。

Java代码

class CwjView extends View {  
 
  private GestureDetector mGD;  
  public CwjView(Context context, AttributeSet attrs) {  
    super(context, attrs);  
     
    mGD = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {  
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {  
          int dx = (int) (e2.getX() - e1.getX()); //计算滑动的距离  
 
          if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.abs(velocityY)) { //降噪处理,必须有较大的动作才识别  
            if (velocityX > 0) {  
              //向右边  
 
            } else {  
              //向左边  
 
            }  
            return true;  
          } else {  
            return false; //当然可以处理velocityY处理向上和向下的动作  
          }  
        }  
      });  
  }  
 
 /*提示大家上面仅仅探测了Fling动作仅仅实现了onFling方法,这里相关的还有以下几种方法来实现具体的可以参考我们以前的文章有详细的解释: 
 
 boolean onDoubleTap(MotionEvent e)  
 boolean onDoubleTapEvent(MotionEvent e)  
 boolean onDown(MotionEvent e)  
 void onLongPress(MotionEvent e)  
 boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)  
 void onShowPress(MotionEvent e)  
 boolean onSingleTapConfirmed(MotionEvent e)  
 boolean onSingleTapUp(MotionEvent e)  
 */ 
 
  //接下来是重点,让我们的View接受触控,需要使用下面两个方法让GestureDetector类去处理onTouchEvent和onInterceptTouchEvent方法。  
 
  @Override 
  public boolean onTouchEvent(MotionEvent event) {   
    mGD.onTouchEvent(event);  
    return true;  
  }  
 
  @Override 
  public boolean onInterceptTouchEvent(MotionEvent event) {  
    return mGD.onTouchEvent(event);  
  }  
 
} 

       本节关于View中手势识别的内容就讲这些。大家知道,很多Android设备都提供了重力感应器和加速度感应器,而稍好些的设备还具备陀螺仪感应器,提供测试角速度功能。下一节将为大家讲解重力感应知识。

       以上就是对Android View进行的手势识别的资料整理,谢谢大家对本站的支持,后续继续补充相关资料。

相关文章

  • Android编程中延后处理事件的方法小结

    Android编程中延后处理事件的方法小结

    这篇文章主要介绍了Android编程中延后处理事件的方法,总结分析了Handler和TimerTask相结合以及使用postDelayed实现延后处理事件的相关操作技巧,需要的朋友可以参考下
    2017-03-03
  • Android实现获取短信验证码并自动填写功能

    Android实现获取短信验证码并自动填写功能

    这篇文章主要为大家详细介绍了Android实现获取短信验证码并自动填写功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Android Studio模拟器运行apk文件

    Android Studio模拟器运行apk文件

    这篇文章主要介绍了Android Studio模拟器运行apk文件,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-09-09
  • Android 两种启动模式的实例详解

    Android 两种启动模式的实例详解

    这篇文章主要介绍了Android 两种启动模式的实例详解的相关资料,Activity的两种启动模式:FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT ,需要的朋友可以参考下
    2017-08-08
  • Android内存溢出及内存泄漏原因进解析

    Android内存溢出及内存泄漏原因进解析

    这篇文章主要介绍了Android内存溢出及内存泄漏原因解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Android 多种简单的弹出框样式设置代码

    Android 多种简单的弹出框样式设置代码

    这篇文章主要介绍了Android 多种简单的弹出框样式设置代码的相关资料,这是一个基于AlertDialog和Dialog这两个类封装的多种弹出框样式,其中提供各种简单样式的弹出框使用说明。对android弹出框样式感兴趣的朋友一起看看吧
    2016-11-11
  • Android使用CountDownTimer实现倒计时效果

    Android使用CountDownTimer实现倒计时效果

    这篇文章主要为大家详细介绍了Android使用CountDownTimer实现倒计时效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android WebView中图片浏览及缩放效果

    Android WebView中图片浏览及缩放效果

    这篇文章主要为大家详细介绍了Android WebView中图片浏览及缩放效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android编程实现屏幕禁止休眠的方法

    Android编程实现屏幕禁止休眠的方法

    这篇文章主要介绍了Android编程实现屏幕禁止休眠的方法,分析了Android的Manifest.xml设置与代码实现两种操作技巧,需要的朋友可以参考下
    2016-10-10
  • 微信小程序 canvas开发实例及注意事项

    微信小程序 canvas开发实例及注意事项

    这篇文章主要介绍了微信小程序 wxcanvas开发实例及注意事项的相关资料,这里对微信canvas与H5中的canvas做对比,并说明注意事项,需要的朋友可以参考下
    2016-12-12

最新评论