专栏首页非著名程序员Android学习第七弹之手势操作

Android学习第七弹之手势操作

在昨天我们讲了Android的OnTouch触摸事件,有时候触摸和手势是相互联系的,密不可分的关系,所以上节我们讲了触摸事件,今天我们自然而然的就需要讲手势操作了。触摸,手势操作已经很好的融入了我们的生活,那在Android开发中如何进行手势识别呢?下面我们就来讲讲。

什么是手势呢?

手势就是用户对手机屏幕进行连续触碰,比如:从屏幕左边滑到手机右边,从屏幕上面滑动到屏幕下面等等,手势可以是一笔,也可以是多笔,可以形成规则或不规则的图形。

手势是如何识别的呢? Android的SDK提供了对手势的识别、自定义手势、存取手势、手势库中査询手势的相关类/接 口,提供了android.view.GestureDetector包用于检测用户的手势。就是通过这些先关的类和接口进行相关的操作的。今天我们主要讲的就是这些类和接口的作用与用法。

与手势相关的类和接口

手势操作一般用到下面的三个类:

  • android.view.GestureDetector 手势操作的识别类,通过他来使用下面的识别接口,该类在andmid.view.GestureDetector包中,可将该类视为手势检测器。
  • android.view.GestureDetector.SimpleOnGestureListener 手势识别的接口类,使用他可以按需重载自己想要的方法,该类实现了 OnGestureListener接口,因此,通过该类可实现对手势的检测操作。
  • android.view.GestureDetector.OnGestureListener; 手势识别的类,SimpleOnGestureListener接口的父类。使用他需要实现他所有的方法,该接口中定义了检测手势按下、按下未松开、轻击、滚动、 长按、拖动等方法。

方法说明

OnGestureListener有下面的几个方法:

按下(onDown):

在按下时调用。

抛掷 boolean OnGestureListener.onFling(MotionEvent el, MotionEvent e2, float velocityX, float velocityY)

作用:检测手势划动事件。

参数: el划动的起始坐标

e2划动的结束坐标

velocityX每秒横向划动的像素值。

velocityY每秒纵向划动的像素值。

长按 OnGestureListener.onLongPress(MotiphEvent e)

作用:检测长按事件。

滚动 boolean onScroll(MotionEvent el, MotionEvent e2, float distanceX, float distanceY);

作用:检测手势滚动事件。

参数:

el:滚动的起始坐标

e2:滚动的结束坐标

distanceX:滚动的横向巨离

distanceY:滚动的纵向距离

按住 OnGestureListener.onShowPress(MotionEvent e)

手指按在触摸屏上,它的时间范围在按下起效,在长按之前。

抬起 onSingleTapUp(MotionEvent e)

作用:检测单击事件,手指离开触摸屏的那一刹那。

SimpleOnGestureListener比OnGestureListener多出来的方法:

双击(onDoubleTap)

双击的第二下Touch down时触发

双击事件(onDoubleTapEvent)

双击的第二下Touch down和up都会触发一次,可用e.getAction()区分。

检测手势的步骤

1、创建手势监听器类继承SimpIeOnGestureListener或实现OnGestureListener

2、创建gestureDetector对象

3、在onTouch或onTouchEvent方法中,将Touch事件传递给gestureDetector对象的onTouchEvent方法进行手势判定。

本文分享自微信公众号 - 非著名程序员(non-famous-coder),作者:耿广龙

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android手势研究(textview及listview对比验证)

    手势即手触摸屏幕做出动作。 View可以通过onTouchEvent收到触摸屏幕事件, 我们可以通过View.setOnTouchListener()设...

    非著名程序员
  • Android BLE 基础框架全新改版

    ? Android BLE基础操作框架,基于回调,操作简单。包含扫描、多连接、广播包解析、服务读写及通知等功能。 项目地址:https://github.co...

    非著名程序员
  • 超值干货:个人开发者如何使用免费又简单的开发后台

    我之前分享了两篇文章分别是《科普技术贴:个人开发者的那些赚钱方式》和《绝对干货:供个人开发者赚钱免费使用的一些好的API接口》,教个人移动开发者如何在业余时间做...

    非著名程序员
  • iOS中手势的应用1. 四类事件的主要方法2. 响应者链3. 手势识别功能(Gesture Recognizer)4. 手势的使用

    stanbai
  • UC伯克利黑科技:用语音数据预测说话人手势

    看到一篇CVPR 2019 论文《Learning Individual Styles of Conversational Gesture》,通过语音数据识别说...

    CV君
  • iOS-手势UIGestureRecognier详解一. 手势UIGestureRecognier简介二. 手势的抽象类——UIGestureRecognizer三. UIGestureRecogni

    xx_Cc
  • 如何响应用户交互事件

    指针事件表示用户交互的原始触摸数据,如手指接触屏幕 PointerDownEvent、手指在屏幕上移动 PointerMoveEvent、手指抬起 Pointe...

    拉维
  • StackNavigator in react-navigation disable swip to back 禁止侧滑返手势

    onety码生
  • Canvas 给图形绘制阴影

    /** * 图形绘制阴影 */ function initDemo6() { var canvas = document.getElementByI...

    就只是小茗
  • 微信小程序版本自动更新

    w候人兮猗

扫码关注云+社区

领取腾讯云代金券