android VelocityTracker跟踪触摸屏事件的速率

2024-06-09 01:58

本文主要是介绍android VelocityTracker跟踪触摸屏事件的速率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

android.view.VelocityTracker 主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用 addMovement(MotionEvent) 函数将Motion event加入到VelocityTracker类实例中.你可以使用 getXVelocity() getXVelocity() 获得横向和竖向的速率到速率时,但是使用它们之前请先调用 computeCurrentVelocity (int) 来初始化速率的单位 。
主要函数
Public Methods
voidaddMovement(MotionEvent event)
Add a user's movement to the tracker.
voidclear()
Reset the velocity tracker back to its initial state.
voidcomputeCurrentVelocity(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表示速率的最大值
voidcomputeCurrentVelocity(int units)
Equivalent to invoking  computeCurrentVelocity(int, float) with a maximum velocity of Float.MAX_VALUE.
abstract TgetNextPoolable()
floatgetXVelocity()
Retrieve the last computed X velocity.
floatgetXVelocity(int id)
Retrieve the last computed X velocity.
floatgetYVelocity(int id)
Retrieve the last computed Y velocity.
floatgetYVelocity()
Retrieve the last computed Y velocity.
abstract booleanisPooled()
static VelocityTrackerobtain()
Retrieve a new VelocityTracker object to watch the velocity of a motion.
voidrecycle()
Return a VelocityTracker object back to be re-used by others.
abstract voidsetNextPoolable(T element)
abstract voidsetPooled(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  () 函数来获得当前的速度

这篇关于android VelocityTracker跟踪触摸屏事件的速率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043939

相关文章

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class