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 788scrollview 中加入多个控件如 edittext 后会 ... -
android 布局式跑马灯,非TextView
2015-04-07 10:51 450如题,简单的实现了跑马灯效果,把Scroll.java放入an ... -
Android圆角图片
2015-03-11 17:44 649my_wane_shape.xml 快速圆角背景边框实现, ... -
SQLite多线程读写实践及常见问题总结
2015-02-13 17:06 900基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了一 ... -
android加速度感应
2015-01-19 10:25 14341.android测量数据 (1)android设备坐标系 ... -
MatrixCursor的使用
2015-01-19 09:49 1013ContentProvider对外共享数据的时候的query( ... -
Android 获取控件的宽高高级用法(MeasureSpec)
2015-01-15 14:23 937一个MeasureSpec封装了父 ... -
Android_GridView_GridView概述及实现水平滑动
2015-01-14 17:14 11161.GridView简介 GridView是ViewGroup ... -
Android MMS,SMS之常用Uri
2014-09-19 16:32 1290Android MMS,SMS之常用Uri Android ... -
android短彩信查询以及MMS表结构
2014-09-19 16:31 2103android短信的数据库的Uri是不公开的, 读取起来时灰常 ... -
使用Android自带DownloadManager下载文件
2014-08-19 11:04 733SDK在API Level 9中加入了DownloadMan ... -
android textview里链接点击事件,增加图片
2014-08-07 16:45 1101Android系统默认给TextView插入图片提供了三种方 ... -
android Home事件汇总
2014-07-18 11:30 964方法一:android 4.0以后无法通过更改页面的类型来 ... -
Android风格与主题(style and theme)
2014-07-16 16:35 638Android xml风格和主题文 ... -
Android中播放声音的两种方法
2014-05-30 15:09 607在Android中,音频、视 ... -
android 杀进程方法
2014-05-26 17:43 972关闭应用的方法: 1.System.exit(0); ... -
android service 生命周期
2014-04-21 16:16 737有了 Service 类我们如何启动他呢,有两种方法: ... -
解决ADB端口被占用的问题
2014-04-21 16:14 783究其源就是adb server没启动 经过分析整理如下: ... -
输入法隐藏打开
2013-12-23 14:24 765首次进入activity,如果有个edittex ... -
google经纬度互转
2013-07-11 16:34 895https://developers.google.com/ ...
相关推荐
详细讲解自定义ViewGroup+Scroller+VelocityTracker做出Launcher滑动
复写onTouchEvent,里面添加四步骤即可
MultiTouch VelocityTracker Pointer2Draw 几个多点触控的测试程序 MultiTouch VelocityTracker Pointer2Draw 几个多点触控的测试程序
自绘控件、继承控件、组合控件、Scroller详解及源码浅析、ViewDragHelper详解及源码浅析、自定义View触摸工具类解析(ViewConfiguration基础参数工具类、VelocityTracker手势速率工具类、GestureDetector手势工具类...
实现了一个可滑动显示图片的控件,用于了解Android的触控机制,Scroller和VelocityTracker的用法
* 创建VelocityTracker对象,并将触摸content界面的滑动事件加入到VelocityTracker当中。 * * @param event * content界面的滑动事件 */ private void createVelocityTracker(MotionEvent event) { if...
自定义ViewGroup 涉及的知识点 - ViewGroup的测量与布局 - View的测量与布局 - 滑动冲突的处理 - VelocityTracker滑动速率跟踪 - Scroller实现弹性滑动 - 屏幕宽高的获取等
UI2018.zip,该项目将会集结 “Android高级UI” 的知识。 目前已有章节: 1、贝塞尔曲线 2、PathMeasure 3、属性动画 4、Xfermode 5、VelocityTracker和Scroller 6、绘制流程 7、svg
final VelocityTracker velocityTracker = mVelocityTracker; velocityTracker.computeCurrentVelocity(100); float xVelocity = velocityTracker.getXVelocity(); int oldScrollX = mSlidingView....
在开发客户的一款应用中,在布局方面由于涉及到了Scroller、VelocityTracker类的使用、还有自定义组件、一些比较实用的布局方式、如LinearLayout、RelativeLayout、等等,可以将一些布局设计分享给大家,对于这一类...
MultiTouch VelocityTracker Pointer2Draw几个多点触控的测试程序
这是研究了网上大神双向左右滑动后实现的上下双向滑动特效,有兴趣的朋友可以看下面代码,注释很详细,原理就是根据手指滑动的方向,来将上下两...import android.view.VelocityTracker; import android.view.View; imp
速度轨迹追踪器VelocityTracker的用法 如何处理滑动事件冲突 dispatchTouchEvent:(外部拦截)告诉此ScrollLayout的父布局,什么时候该拦截触摸事件,什么时候不该拦截触摸事件 onInterceptTouchEvent:(内部拦截...
本文实例讲述了Android继承ViewGroup实现Scroll滑动效果的方法。分享给大家供大家参考,具体如下: extends ViewGroup需要重写onMeasure和onLayout...Android为我们提供了VelocityTracker这个类检测速率 使用mVelocit
3.1.4 VelocityTracker、GestureDetector和Scroller 126 3.2 View的滑动 129 3.2.1 使用scrollTo/scrollBy 129 3.2.2 使用动画 131 3.2.3 改变布局参数 133 3.2.4 各种滑动方式的对比 133 3.3 弹性滑动 135 ...
介绍了相关的GestureDetector,Scroller和VelocityTracker。最后分析drag和scale等一些手势的识别。 输入源分类 虽然android本身是一个完整的系统,它主要运行在移动设备的特性决定了我们在它上面开的app绝大数属于...
private VelocityTracker mVelocityTracker; private int mMinimumVelocity; private int mMaximumVelocity; private float mBaseLineFlingVelocity; private float mFlingVelocityInfluence; private int ...
3.1.4 VelocityTracker、GestureDetector和Scroller / 126 3.2 View的滑动 / 129 3.2.1 使用scrollTo/scrollBy / 129 3.2.2 使用动画 / 131 3.2.3 改变布局参数 / 133 3.2.4 各种滑动方式的对比 / 133 ...
先上效果图: 这个控件其实算是比较轻量级的,相信不少小伙伴都能做出来。因为项目中遇到了一些特殊的定制要求,所以就自己写了一个,这里放出来。...•用VelocityTracker来实现控件的快速滚动 如
VelocityTracker GestureDetector View的滑动 View的动画 自定义View 滑动冲突 进阶学习 1.View的定义 View:Android中所有控件的基类。单个控件或多个控件组成的一组控件。 ViewGroup:控件组,包含多个控件。...