代码讲解Android Scroller、VelocityTracker

本文深入探讨Android开发中,如何利用Scroller和VelocityTracker实现自定义滑动控件。讲解了Touch系统、Scroller的轨迹跟踪以及VelocityTracker的速度测量。通过一个自定义控件的demo,展示了如何在onTouchEvent、onInterceptTouchEvent等回调中应用这两个类,以实现类似ImageGallery的滑动效果。示例代码演示了如何让界面在3秒内平滑过渡。
摘要由CSDN通过智能技术生成

在编写自定义滑动控件时常常会用到Android触摸机制和Scroller及VelocityTracker。Android Touch系统简介(二):实例详解onInterceptTouchEvent与onTouchEvent的调用过程对Android触摸机制需要用到的函数进行了详细的解释,本文主要介绍两个重要的类:Scroller及VelocityTracker。利用上述知识,最后给出了一个自定义滑动控件的demo,该demo类似于ImageGallery。ImageGallery一般是用GridView来实现的,可以左右滑动。本例子实现的控件直接继承一个ViewGroup,对其回调函数如 onTouchEvent、onInterceptTouchEvent、computeScroll等进行重载。弄懂该代码,对Android touch的认识将会更深一层。

VelocityTracker:用于对触摸点的速度跟踪,方便获取触摸点的速度。
用法:一般在onTouchEvent事件中被调用,先在down事件中获取一个VecolityTracker对象,然后在move或up事件中获取速度,调用流程可如下列所示:

VelocityTracker vTracker = null;
@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);  
		//设置单位,1000 表示每秒多少像素(pix/second),1代表每微秒多少像素(pix/millisecond)。 
		vTracker.computeCurrentVelocity(1000);  
		//从左向右划返回正数,从右向左划返回负数
		System.out.prin
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值