android.view.VelocityTracker主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用addMovement(MotionEvent)函数将Motion event加入到VelocityTracker类实例中.你可以使用getXVelocity() 或getXVelocity()获得横向和竖向的速率到速率时,但是使用它们之前请先调用computeCurrentVelocity(int)来初始化速率的单位 。
主要函数
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毫秒)时间单位内运动了多少个像素
floatVelocity表示速率的最大值
|
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 ()函数来获得当前的速度
发表评论
-
ScrollView嵌套Edittext
2015-04-08 18:26 856scrollview 中加入多个控件如 edittext 后会 ... -
android 布局式跑马灯,非TextView
2015-04-07 10:51 516如题,简单的实现了跑马灯效果,把Scroll.java放入an ... -
Android圆角图片
2015-03-11 17:44 710my_wane_shape.xml 快速圆角背景边框实现, ... -
SQLite多线程读写实践及常见问题总结
2015-02-13 17:06 968基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了一 ... -
android加速度感应
2015-01-19 10:25 14881.android测量数据 (1)android设备坐标系 ... -
MatrixCursor的使用
2015-01-19 09:49 1063ContentProvider对外共享数据的时候的query( ... -
Android 获取控件的宽高高级用法(MeasureSpec)
2015-01-15 14:23 1020一个MeasureSpec封装了父 ... -
Android_GridView_GridView概述及实现水平滑动
2015-01-14 17:14 11601.GridView简介 GridView是ViewGroup ... -
Android MMS,SMS之常用Uri
2014-09-19 16:32 1335Android MMS,SMS之常用Uri Android ... -
android短彩信查询以及MMS表结构
2014-09-19 16:31 2276android短信的数据库的Uri是不公开的, 读取起来时灰常 ... -
使用Android自带DownloadManager下载文件
2014-08-19 11:04 779SDK在API Level 9中加入了DownloadMan ... -
android textview里链接点击事件,增加图片
2014-08-07 16:45 1184Android系统默认给TextView插入图片提供了三种方 ... -
android Home事件汇总
2014-07-18 11:30 1027方法一:android 4.0以后无法通过更改页面的类型来 ... -
Android风格与主题(style and theme)
2014-07-16 16:35 684Android xml风格和主题文 ... -
Android中播放声音的两种方法
2014-05-30 15:09 689在Android中,音频、视 ... -
android 杀进程方法
2014-05-26 17:43 1031关闭应用的方法: 1.System.exit(0); ... -
android service 生命周期
2014-04-21 16:16 802有了 Service 类我们如何启动他呢,有两种方法: ... -
解决ADB端口被占用的问题
2014-04-21 16:14 850究其源就是adb server没启动 经过分析整理如下: ... -
输入法隐藏打开
2013-12-23 14:24 831首次进入activity,如果有个edittex ... -
google经纬度互转
2013-07-11 16:34 951https://developers.google.com/ ...
相关推荐
在Android开发中,VelocityTracker是用于检测用户触摸屏幕滑动手势速度的重要工具。它可以帮助我们了解手指在屏幕上移动的速度和方向,这对于实现如滚动、滑动解锁等手势操作的交互非常有用。本教程将深入讲解如何在...
本教程将深入讲解如何结合Scroller和VelocityTracker来实现一个类似Launcher(应用启动器)的滑动效果。这种滑动效果常见于手机桌面,允许用户平滑地在多个页面之间切换。 首先,了解ViewGroup。ViewGroup是Android...
本实例将详细讲解如何利用Android的VelocityTracker类来计算滑动速度。 首先,VelocityTracker是Android提供的一个工具类,用于追踪和计算一段时间内手指在屏幕上移动的速度。它能够帮助开发者获取滑动事件的平均...
private VelocityTracker velocityTracker; private int lastY; public ReboundScrollView(Context context) { super(context); } // ...其他构造函数... @Override public boolean onTouchEvent...
fling((int) -velocityTracker.getXVelocity(), (int) -velocityTracker.getYVelocity()); velocityTracker.recycle(); velocityTracker = null; break; } return true; // 消耗事件,防止父控件拦截 } } ``...
private VelocityTracker velocityTracker; private int minimumFlingVelocity; // 最小滑动速度 public SmoothScrollGridView(Context context) { super(context); init(context); } public ...
MultiTouch VelocityTracker Pointer2Draw 几个多点触控的测试程序 MultiTouch VelocityTracker Pointer2Draw 几个多点触控的测试程序
本文将深入探讨如何实现一个可滑动显示图片的控件,通过这个过程,我们可以学习到Android的触控事件处理机制、Scroller类的应用以及VelocityTracker的用法。 首先,Android的触控事件处理主要包括三个基本步骤:...
- 在ACTION_DOWN事件中,使用`VelocityTracker.obtain()`创建实例或`velocityTracker.clear()`重置现有实例。 - 对于每个事件,调用`velocityTracker.addMovement(event)`将事件添加到VelocityTracker。 - 在需要...
VelocityTracker velocityTracker = VelocityTracker.obtain(); velocityTracker.addMovement(ev); velocityTracker.computeCurrentVelocity(1000); // 1000代表单位为毫秒 int velocityX = (int) ...
通过`VelocityTracker.obtain()`获取实例,然后在`onTouchEvent()`方法中,使用`addMovement(MotionEvent)`添加MotionEvent,接着调用`computeCurrentVelocity(int)`计算速度,并使用`getXVelocity()`和`...
总之,"android手势翻页效果"是Android开发中提升用户体验的一种重要技术,通过理解和运用`GestureDetector`, `Scroller`以及`VelocityTracker`,开发者可以创造出更生动、自然的用户界面。这个小例子对于深入理解...
总结来说,实现Android自定义布局的平滑移动需要对`ViewGroup`的生命周期有深刻的理解,熟练运用`VelocityTracker`、`Scroller`和`ViewConfiguration`,并精细处理触摸事件和视图布局。通过这种方式,开发者可以创造...
在`onTouchEvent`的序列中,我们可以在ACTION_DOWN事件中启动VelocityTracker,然后在ACTION_UP或ACTION_CANCEL事件中计算速度。 处理滑动事件冲突也是实现自定义ViewPager的关键。这通常涉及到`dispatchTouchEvent...
自绘控件、继承控件、组合控件、Scroller详解及源码浅析、ViewDragHelper详解及源码浅析、自定义View触摸工具类解析(ViewConfiguration基础参数工具类、VelocityTracker手势速率工具类、GestureDetector手势工具类...
总结来说,实现"android页面滑动"需要理解并掌握ViewPager、PagerAdapter、Scroller、VelocityTracker等核心组件和类,同时可能还需要结合自定义视图和动画技术,以达到类似桌面的弹性滑动体验。对于开发者而言,这...
`Scroller`用于处理平滑滚动,`velocityTracker`用于检测用户的滑动速度。通过监听触摸事件,我们可以根据用户的滑动速度和方向来更新图表的位置,从而实现图表的动态滚动。 在实际绘制过程中,我们使用`canvas`...
Scroller可以帮助我们实现平滑的动画效果,而VelocityTracker则可以追踪用户的触摸速度,这些都可以用于判断滑动的方向和幅度,从而精确地调整数值。 此外,源码中包含两个Spinner实例,这意味着可能有两种不同的...
实现滑动效果需要继承 ViewGroup,重写 onMeasure 和 onLayout 方法,并使用 VelocityTracker 来检测滑动速率。下面将详细介绍 Android 继承 ViewGroup 实现 Scroll 滑动效果的方法。 继承 ViewGroup 要实现滑动...
* 创建VelocityTracker对象,并将触摸content界面的滑动事件加入到VelocityTracker当中。 * * @param event * content界面的滑动事件 */ private void createVelocityTracker(MotionEvent event) { if...