您的位置:首页 > 其它

VelocityTracker的简单使用方法

2014-06-05 22:34 477 查看
/**
* 计算滑动速率
*
*/
public class VelocityTrackerDemoActivity extends Activity {

private static final String INFO = "手指在屏幕上滑动";

private int mMaximumVelocity;
private VelocityTracker mVelocityTracker;
private TextView mTextView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mTextView = (TextView) findViewById(R.id.textView);
mTextView.setText(INFO);

final ViewConfiguration configuration = ViewConfiguration.get(this);
mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();

}

@Override
public boolean onTouchEvent(MotionEvent event) {

int action = event.getAction();

if (mVelocityTracker == null) {
// 获得VelocityTracker类的一个实例对象
mVelocityTracker = VelocityTracker.obtain();
}
// 添加跟踪
// 将当前的移动事件传递给VelocityTracker对象
mVelocityTracker.addMovement(event);

switch (action) {
case MotionEvent.ACTION_MOVE:
//          mTracker.addMovement(event);
// 计算当前的速度
// 1000,初始化速率的单位 表示每秒多少像素(pix/second),1代表每微秒多少像素(pix/millisecond)。
final VelocityTracker velocityTracker = mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);

mTextView.setText(INFO + " \n横向速率是 : "+mVelocityTracker.getXVelocity());
mTextView.append("\n 纵向速率是: "+mVelocityTracker.getYVelocity());
break;

case MotionEvent.ACTION_CANCEL:
// 这里可以获取滑动的速率
if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker = null;
}

break;
}

return true;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: