velocitytracker
velocitytracker就是速度跟踪的意思。我们可以获得触摸点的坐标,根据按下的时间可以简单的计算出速度的大小。
当你需要跟踪的时候使用obtain()方法来来获得VelocityTracker类的一个实例对象
使用addMovement(motionevent)函数将当前的移动事件传递给VelocityTracker对象
使用computeCurrentVelocity (int units)函数来计算当前的速度
使用getXVelocity ()、getYVelocity ()函数来获得当前的速度
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)。
用完之后 注意回收!
详细见:http://blog.csdn.net/bingxianwu/article/details/7446799
相关阅读
我们都知道互联网如野火般席卷全球,但是在美国,互联网的普及速度真的有收音机或电视那么快吗?这个问题的答案充满着高度不确定性,但是
USB2.0规范中传输速度是480 Mbps(即60 MB/s)。但是很多USB2.0设备在实际工作时的数据传输速度却与此相差甚远,比如用PC用U盘拷个东
显存速度就是显存时钟脉冲的重复周期的快慢,是作为衡量显存速度的重要指标。显存速度越快,单位时间交换的数据量也就越大,在同等情况
效果如图,修改前是200KB左右,在修改后可以达到3-4MB的下载速度 实现方法 1.打开origin客户端的安装目录,例如我的默认安装目录是C:
效果 鼠标滑过的时候,只在左边的时候左边处于半充满状态,在中间的时候处于全充满