android.view.VelocityTracker 主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用 addMovement(MotionEvent) 函数将Motion event加入到VelocityTracker类实例中.你可以使用 getXVelocity() 或 getXVelocity() 获得横向和竖向的速率到速率时,但是使用它们之前请先调用 computeCurrentVelocity (int) 来初始化速率的单位 。
主要函数
Public Methods
void addMovement(MotionEvent event)

Add a user's movement to the tracker.
void clear()

Reset the velocity tracker back to its initial state.
void computeCurrentVelocity(int units, float maxVelocity)

Compute the current velocity based on the points that have been collected.
int  unitis表示速率的基本时间单位。unitis值为 1的表示是,一毫秒时间单位内运动了多少个像素, unitis值为 1000表示一秒(1000毫秒)时间单位内运动了多少个像素
float Velocity表示速率的最大值
void computeCurrentVelocity(int units)

Equivalent to invoking  computeCurrentVelocity(int, float) with a maximum velocity of Float.MAX_VALUE.
abstract T getNextPoolable()
float getXVelocity()

Retrieve the last computed X velocity.
float getXVelocity(int id)

Retrieve the last computed X velocity.
float getYVelocity(int id)

Retrieve the last computed Y velocity.
float getYVelocity()

Retrieve the last computed Y velocity.
abstract boolean isPooled()
static VelocityTracker obtain()

Retrieve a new VelocityTracker object to watch the velocity of a motion.
void recycle()

Return a VelocityTracker object back to be re-used by others.
abstract void setNextPoolable(T element)
abstract void setPooled(boolean isPooled)
示例: 
    private VelocityTracker mVelocityTracker;//生命变量 
    //在onTouchEvent(MotionEvent ev)中 
    if (mVelocityTracker == null) { 
             mVelocityTracker = VelocityTracker. obtain () ;//获得VelocityTracker类实例 
    } 
     mVelocityTracker. addMovement (ev); //将事件加入到VelocityTracker类实例中 
     //判断当ev事件是MotionEvent.ACTION_UP时:计算速率 
    final VelocityTracker velocityTracker = mVelocityTracker; 
     // 1000 provides pixels per second 
     velocityTracker.computeCurrentVelocity(1, (float)0.01) ;  //设置maxVelocity值为0.1时,速率大于0.01时,显示的速率都是0.01,速率小于0.01时,显示正常 
    Log.i("test","velocityTraker"+velocityTracker.getXVelocity());                     
    velocityTracker.computeCurrentVelocity(1000);  //设置units的值为1000,意思为一秒时间内运动了多少个像素 
    Log.i("test","velocityTraker"+velocityTracker.getXVelocity()); 
大体的使用是这样的:
当你需要跟踪触摸屏事件的速度的时候,使用 obtain() 方法来获得 VelocityTracker 类的一个实例对象
在 onTouchEvent 回调函数中,使用 addMovement(MotionEvent) 函数将当前的移动事件传递给 VelocityTracker 对象
使用 computeCurrentVelocity  (int units) 函数来计算当前的速度,使用  getXVelocity  () 、  getYVelocity  () 函数来获得当前的速度

转载于:https://my.oschina.net/u/2289067/blog/464239

Android VelocityTracker简介相关推荐

  1. 【译】Android系统简介—— Activity

    续上一篇,继续介绍Android系统.上一篇: [译]Android系统简介 本文主要介绍构建Android应用的一些主要概念: Activity Activity是应用程序中一个单独的有UI的页面( ...

  2. Android ViewTreeObserver简介-------------转

    Android ViewTreeObserver简介 一.结构 public final class ViewTreeObserver extends Object java.lang.Object ...

  3. android radiooptions简介

    android radiooptions简介 RILD负责modem和RILJ端的通信,信息分两种:unsolicited和solicited,前者是由modem主动上报的,诸如时区更新.通话状态.网 ...

  4. Android 的简介和体系结构中每个层的功能。

    Android 的简介和体系结构中每个层的功能. 1.简介 Android是由Google公司和开放手机联盟领导并开发的一种基于Linux的自由且开放源代码的操作系统,主要使用于移动设备. Andro ...

  5. Android字体简介

    Android字体简介 Android系统默认支持三种字体,分别为:"sans","serif","monospace". android. ...

  6. Android OkHttp3简介和使用详解

    一 OKHttp简介 OKHttp是一个处理网络请求的开源项目,Android 当前最火热网络框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpC ...

  7. android 教程概要,Android精通教程-第一节Android入门简介

    前言 大家好,我是 Vic,今天给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cea ...

  8. Android HIDL 简介

    Android HIDL 简介 Qidi 2017.08.01 (Markdown & Haroopad) 注意:本文基于 Android 8.0 进行分析. 0.特别声明 本文是在 HIDL ...

  9. Android开发-简介(一)

    Android的简介: Android是一种基于Linux 内核和其他开源软件的修改版本的移动操作系统,主要为智能手机和平板电脑等触摸屏移动设备设计.Android是由一个被称为开放手机联盟的开发者联 ...

  10. 《Android游戏编程入门经典》——1.1节Android 4简介

    本节书摘来自异步社区<Android游戏编程入门经典>一书中的第1章,第1.1节Android 4简介,作者[美]Jonathan S. Harbour,更多章节内容可以访问云栖社区&qu ...

最新文章

  1. 三大运营商扎堆进军“元宇宙”
  2. H.264的一些资料整理
  3. GreenDao 使用方法:
  4. PowerDesigner导出表到word
  5. java总结:double取两位小数的多种方法
  6. shell脚本-页面静态化
  7. 一步一步手绘Spring DI运行时序图(Spring 自动装配之依赖注入)
  8. php-fpm 相关
  9. Java和JavaScript中使用Json方法大全
  10. 凸优化第七章统计估计 7.5实验设计
  11. fclk if总线_技嘉B550手把手超频指南,光威血影为例
  12. windows 清除记录ftp账号
  13. java导出dbf文件_Java 导出dbf文件
  14. 区块链的底层技术:P2P网络原理与应用详解
  15. Troubleshooting Consolidation
  16. 电脑调节屏幕亮度快捷键失灵の解决方案
  17. The color “baseBlac in values has no declaration in the base values folder this can lead to crash
  18. 小身板干大事:DATAhawk无人机独创手抛起飞实现3厘米精准测绘
  19. ubuntu下街机模拟器 mame 安装和玩拳王97
  20. 李开复 ---- 给中国学生的第七封信:21世纪最需要的7种人才

热门文章

  1. 民间计算机网络高手,高手在民间!牛人用Excel创作的惊人画作
  2. 想自学PLC编程该按什么步骤来?
  3. 灵信LED屏 二次开发C#
  4. Pr 音频效果参考:混响
  5. 音频均衡器原理及实现
  6. tensorflow.js基本使用 图标识别(八)
  7. C/C++之奔跑的小人(小游戏,自娱自乐)
  8. 支持向量机原理小结(3)——核方法和非线性支持向量机
  9. java表白我爱你代码_微信翻译代码我爱你怎么写 微信翻译表白代码大全
  10. CAD专用卸载修复工具,一键完全彻底卸载删除CAD软件的专用卸载工具