关于如何处理手势操作以及那四个基本固定的顺序我就不讲解了,这里直接跳到我们获得瞬间滑动后回调onFling()这个抽象函数时,应该如何根据参数比较准确的判断滑动方向。如果你没有前面的基础知识,你可以去看看这篇文章:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1020/448.html

我看到网上大部分资料,对这个抽象函数的实现都是相当简单的:

这些文章其实能解决的问题只有一个,那就是教你如何能在有手势操作的时候,捕获到这个动作,却没有去分析这个动作。

其实要真正能分析手势,需要处理好这四个参数MotionEvent e1, MotionEvent e2, float velocityX, float velocityY

OnFling的四个参数意思分别为

e1: The first down motion event that started the fling.手势起点的移动事件

e2: The move motion event that triggered the current onFling.当前手势点的移动事件

velocityX: The velocity of this fling measured in pixels per second along the x axis.每秒x轴方向移动的像素

velocityY: The velocity of this fling measured in pixels per second along the y axis.每秒y轴方向移动的像素

说的更简单点就是,鼠标手势相当于一个向量(当然有可能手势是曲线),e1为向量的起点,e2为向量的终点,velocityX为向量水平方向的速度,velocityY为向量垂直方向的速度

则上面的语句能知道啥意思了吧,就是说向量的水平长度(滑了有多长)必须大于verticalMinDistance,并且水平方向速度大于minVelocity。

从而我们可以如此判断手势是否满足一定的条件从而进行相应响应,也可以根据这个写出更复杂的手势判断。

虽然我这篇文章不去探究手势操作的基本步凑,但还是有必要谈谈我们的listenner在重载onTouch()这个函数的时候应该思考的问题:

查看GestureDetector类的onTouchEvent的源码就能知道,进入该函数后会进入case MotionEvent.ACTION_UP这个路径,从而调用onFling函数。

我要说的就是这句话,因为在我看来GestureDetector未必能满足处理所有的手势需求,肯能有那么一天,需要我们抛开GestureDetector   直接在onTouch()里面完成任务。

android onfling参数,Android 屏幕手势滑动中onFling()函数的技巧分析相关推荐

  1. Appium 屏幕页面滑动(swipe函数实现)

    Appium 屏幕页面滑动(swipe函数实现) 一.简介 在Appium中进行屏幕页面的滑动操作,我们可以使用其提供的swipe函数来实现,使用此函数,我们只需要提供起始(x,y)坐标值和滑动结束的 ...

  2. python中max函数用法_Python中max函数用法实例分析

    Python中max函数用法实例分析 更新时间:2015年07月17日 15:45:09 作者:优雅先生 这篇文章主要介绍了Python中max函数用法,实例分析了Python中max函数的功能与使用 ...

  3. python中property函数_python 邮件表格Python中property函数用法实例分析

    本文实例讲述了Python中property函数用法.分享给大家供大家参考,具体如下: 通常我们在访问和赋值属性的时候,都是在直接和类(实例的)的__dict__打交道,或者跟数据描述符等在打交道.但 ...

  4. php中的eval,php eval函数用法—-PHP中eval()函数小技巧 | 学步园

    eval 将值代入字符串之中. 语法: void eval(string code_str); 传回值: 无 函式种类: 数据处理 内容说明 本函式可将字符串之中的变量值代入,通常用在处理数据库的数据 ...

  5. Android 7.1 增加屏幕边缘滑动事件(手势滑动)两种方式(Back,Home,Menu功能键) 免开启无障碍功能

    目前公司在做新项目开发,项目目前是不让有Back,Home,Menu实体按键,这就导致了一个问题,点开其它应用无法返回到桌面, 当然些问题对于做开发的我们肯定是难不到的,如果我们开发碰到这问题肯定是a ...

  6. android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果

    首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.)                搜狐客户端                               ...

  7. android asynctask 参数,Android中AsyncTask详解

    定义 AsyncTask是一个抽象类,在使用时需要继承该类,实现其抽象方法protected abstract Result doInBackground(Params... params).其主要作 ...

  8. android本页切换子页,android ViewPager控件实现手势滑动切换页签-Fun言

    1,主布局文件 android:layout_width="match_parent" android:layout_height="match_parent" ...

  9. android onpagescrolled 参数,Android

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 背景 ViewPager 在应用中使用较为广泛,诸如页面轮播图,App引导页,大图预览等.其中指示器页比较重要 它用于提 ...

最新文章

  1. 对于坐拥海量数据的金融企业来说,大数据治理意味着什么?
  2. js:进一步关闭(范围:下一个)
  3. androidstudio mac mini_GitHub - jp1017/AndroidStudioPlugins: Android Studio 常用插件及浅释
  4. c++容器定义、初始化、赋值
  5. Java 代码精简之道 | 长文
  6. Socket编程应用——开发聊天软件
  7. [译] 轻松发布私有 App
  8. 04. 替换空格(C++版本)
  9. 鸿蒙2.0公测版支持机型,华为鸿蒙2.0露真容,公测版支持机型公布
  10. 研发团队绩效管理如何做?
  11. 【力扣-动态规划入门】【第 4 天】45. 跳跃游戏 II
  12. Android Studio 设置控件边框
  13. 什么是PECL电平以及常用的匹配电路
  14. ip a命令显示的UP与LOWER_UP的区别
  15. maven学习:maven 的入门
  16. iOS 各版本系统占比
  17. 程序员睡前发「73 76 79 86 85」,女孩熬夜破解发现竟是表白密码!
  18. 分区助手4.0绿色中文版
  19. 卷积、池化、激励函数的顺序
  20. 组态软件的开发(C#)

热门文章

  1. python 全中文匹配字符_Python教程:进程和线程amp;正则表达式
  2. eclipse 项目 链接 oracle 空指针,Eclipse 常用配置技巧
  3. 文本处理三剑客之sed(流编辑器)
  4. SSL 1108——【USACO 2.1】海明码(DFS)
  5. WCF服务寄宿IIS与Windows服务 - C#/.NET
  6. photoshop 工具栏中英文对照
  7. C#基础概念之延迟加载
  8. 香港中文大学(深圳)张大鹏教授项目组招聘PhD
  9. 1万美元奖金,Kaggle 新赛瞄准室内定位
  10. 谷歌发布AdaNet,快速灵活的AutoML工具,帮助开发者构筑强大集成学习模型