`

利用VelocityTracker监控对触摸的速度跟踪

 
阅读更多
VelocityTracker就是速度跟踪的意思。我们可以获得触摸点的坐标,根据按下的时间可以简单的计算出速度的大小。
Android直接提供了一种方式来方便我们获得触摸的速度。
public class VelocityTrackerActivityActivity extends Activity {
    /** Called when the activity is first created. */
	TextView textView;
	private VelocityTracker vTracker = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        textView = (TextView)findViewById(R.id.textView);
    }
    
    @Override
    public boolean onTouchEvent(MotionEvent event){
    	int action = event.getAction();
    	switch(action){
    	case MotionEvent.ACTION_DOWN:
    		if(vTracker == null){
    			vTracker = VelocityTracker.obtain();
    		}else{
    			vTracker.clear();
    		}
    		vTracker.addMovement(event);
    		break;
    	case MotionEvent.ACTION_MOVE:
    		vTracker.addMovement(event);
    		vTracker.computeCurrentVelocity(1000);
    		textView.setText("the x velocity is "+vTracker.getXVelocity());
    		textView.append("the y velocity is "+vTracker.getYVelocity());
    		break;
    	case MotionEvent.ACTION_UP:
    	case MotionEvent.ACTION_CANCEL:
    		vTracker.recycle();
    		break;
    	}
    	event.recycle();
		return true;
    }
}

VelocityTracker不仅可以处理单点的速度,也可以获得多点的速度。这和处理多点触摸的方式是一样的,传入一个ID就可以了。VelocityTracker获得的速度是有正负之分,computerCurrentVelocity()可以设置单位。1000 表示每秒多少像素(pix/second),1代表每微秒多少像素(pix/millisecond)。
分享到:
评论
2 楼 angel419339 2013-09-04  
event.recycle();报错哟
1 楼 huyangwin 2013-08-15  
1是毫秒吧

相关推荐

    android velocityTracker滑动速度检测器简单使用

    复写onTouchEvent,里面添加四步骤即可

    详细讲解自定义ViewGroup+Scroller+VelocityTracker做出Launcher滑动

    详细讲解自定义ViewGroup+Scroller+VelocityTracker做出Launcher滑动

    《Android自定义组件开发详解》

    8.5.2 速度跟踪器VelocityTracker 273 8.5.3 触摸滑屏的分步实现 274 8.6 练习作业 285 第九章 侧边栏 287 9.1 概述 287 9.2 使用二进制保存标识数据 289 9.2.1 位运算符 289 9.2.2 位运算的常用功能 292 9.3 继承...

    札记:android手势识别功能实现(利用MotionEvent)

    介绍了相关的GestureDetector,Scroller和VelocityTracker。最后分析drag和scale等一些手势的识别。 输入源分类 虽然android本身是一个完整的系统,它主要运行在移动设备的特性决定了我们在它上面开的app绝大数属于...

    Android 自定义布局竖向的ViewPager的实现

    速度轨迹追踪器VelocityTracker的用法 如何处理滑动事件冲突 dispatchTouchEvent:(外部拦截)告诉此ScrollLayout的父布局,什么时候该拦截触摸事件,什么时候不该拦截触摸事件 onInterceptTouchEvent:(内部拦截...

    MultiTouch.7z 几个多点触控的测试程序

    MultiTouch VelocityTracker Pointer2Draw 几个多点触控的测试程序 MultiTouch VelocityTracker Pointer2Draw 几个多点触控的测试程序

    安卓高级UI培训课程

    自绘控件、继承控件、组合控件、Scroller详解及源码浅析、ViewDragHelper详解及源码浅析、自定义View触摸工具类解析(ViewConfiguration基础参数工具类、VelocityTracker手势速率工具类、GestureDetector手势工具类...

    MyScrollView

    自定义ViewGroup 涉及的知识点 - ViewGroup的测量与布局 - View的测量与布局 - 滑动冲突的处理 - VelocityTracker滑动速率跟踪 - Scroller实现弹性滑动 - 屏幕宽高的获取等

    RenRenSlideMenuDemo.zip

    * 创建VelocityTracker对象,并将触摸content界面的滑动事件加入到VelocityTracker当中。 * * @param event * content界面的滑动事件 */ private void createVelocityTracker(MotionEvent event) { if...

    精通ANDROID 3(中文版)1/2

    14.2.1 通过通知管理器监控通知  14.2.2 发送通知  14.3 长期运行的接收程序和服务  14.3.1 长期运行的广播接收程序协议  14.3.2 IntentService  14.3.3 IntentService源代码  14.4 为广播接收程序扩展...

    精通Android 3 (中文版)2/2

    14.2.1 通过通知管理器监控通知  14.2.2 发送通知  14.3 长期运行的接收程序和服务  14.3.1 长期运行的广播接收程序协议  14.3.2 IntentService  14.3.3 IntentService源代码  14.4 为广播接收程序扩展...

    自定义Android可滑动控件源码

    实现了一个可滑动显示图片的控件,用于了解Android的触控机制,Scroller和VelocityTracker的用法

    UI2018.zip

    UI2018.zip,该项目将会集结 “Android高级UI” 的知识。 目前已有章节: 1、贝塞尔曲线 2、PathMeasure 3、属性动画 4、Xfermode 5、VelocityTracker和Scroller 6、绘制流程 7、svg

    MultiTouch.zip_Windows编程_Java_

    MultiTouch VelocityTracker Pointer2Draw几个多点触控的测试程序

    屏幕滚动与布局设计 v1.0.zip

    在开发客户的一款应用中,在布局方面由于涉及到了Scroller、VelocityTracker类的使用、还有自定义组件、一些比较实用的布局方式、如LinearLayout、RelativeLayout、等等,可以将一些布局设计分享给大家,对于这一类...

    左右滑动控件

    final VelocityTracker velocityTracker = mVelocityTracker; velocityTracker.computeCurrentVelocity(100); float xVelocity = velocityTracker.getXVelocity(); int oldScrollX = mSlidingView....

    Android开发艺术探索.任玉刚(带详细书签).pdf

    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 ...

    Android开发艺术探索

     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 ...

    Android实现上下菜单双向滑动效果

    这是研究了网上大神双向左右滑动后实现的上下双向滑动特效,有兴趣的朋友可以看下面代码,注释很详细,原理就是根据手指滑动的方向,来将上下两...import android.view.VelocityTracker; import android.view.View; imp

    ViewPager 放大缩小左右移动

    private VelocityTracker mVelocityTracker; private int mMinimumVelocity; private int mMaximumVelocity; private float mBaseLineFlingVelocity; private float mFlingVelocityInfluence; private int ...

Global site tag (gtag.js) - Google Analytics