触摸[4] VelocityTracker
来源:互联网 发布:沈阳seo外包公司 编辑:程序博客网 时间:2024/06/10 04:18
【参考链接】
可以使用VelocityTracker类来获得手指滑动时的速度
假设computeCurrentVelocity()中设置的时间间隔是1000ms,在1000ms内手指在水平方向从左向右滑动了100像素,那么计算出来的值就是100。
注意速度的正负值跟屏幕坐标系方向保持一致。
@Override
public booleanonTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
switch (event.getAction()){
caseMotionEvent.ACTION_DOWN:
Log.e("shadowfaxghh","ACTION_DOWN");
lastX=(int) event.getRawX();
obtaionVelocityTracker();
mVelocityTracker.addMovement(event);
break;
case MotionEvent.ACTION_MOVE:
Log.e("shadowfaxghh","ACTION_MOVE");
int newX= (int) event.getRawX();
int deltaX=newX-lastX;
// if (Math.abs(deltaX) >ViewConfiguration.get(getContext()).getScaledTouchSlop()) {
intnewScrollX = getScrollX() + (-deltaX);
if (newScrollX >maxScrollX)
newScrollX = maxScrollX;
if (newScrollX <minScrollX)
newScrollX = minScrollX;
scrollTo(newScrollX,getScrollY());
//更新坐标
lastX= newX;
// }
obtaionVelocityTracker();
mVelocityTracker.addMovement(event);
break;
case MotionEvent.ACTION_UP:
Log.e("shadowfaxghh","ACTION_UP");
lastX=(int) event.getRawX();
if(mVelocityTracker!=null) {
//计算速度
mVelocityTracker.computeCurrentVelocity(1000,scaledMaximumFlingVelocity);
//获取x方向的速度
intxVelocity = (int)mVelocityTracker.getXVelocity();
Log.e("shadowfaxghh","xVelocity="+ xVelocity);
recycleVelocityTracker();
}
break;
case MotionEvent.ACTION_CANCEL:
Log.e("shadowfaxghh","ACTION_CANCEL");
lastX=(int) event.getRawX();
recycleVelocityTracker();
break;
default:
break;
}
return true;
}
private voidobtaionVelocityTracker(){
if(mVelocityTracker==null)
mVelocityTracker=VelocityTracker.obtain();
}
private voidrecycleVelocityTracker(){
if(mVelocityTracker!=null){
mVelocityTracker.clear();
mVelocityTracker.recycle();
mVelocityTracker=null;
}
}
- 触摸[4] VelocityTracker
- VelocityTracker
- VelocityTracker
- VelocityTracker
- VelocityTracker
- VelocityTracker
- VelocityTracker
- velocitytracker
- VelocityTracker
- 利用VelocityTracker监控对触摸的速度跟踪
- 利用VelocityTracker监控对触摸的速度跟踪
- 【Android View触摸事件(一)】Android常用触控类分析:MotionEvent 、 ViewConfiguration、VelocityTracker
- VelocityTracker类
- VelocityTracker 使用
- VelocityTracker类
- VelocityTracker 使用
- VelocityTracker 使用
- VelocityTracker简介
- C++中memset用法
- android 系统签名
- vue-router基本使用
- ibatis/mybatis循环
- 利用shell脚本下载ImageNet数据集
- 触摸[4] VelocityTracker
- query.cookie() 方法:一个轻量级的cookie 插件,可以读取、写入、删除 cookie,下面有个不错的数量,大家可以学习下 一个轻量级的cookie 插件,可以读取、写入、删除 co
- java 序列化是干什么的?
- 系统下挂双硬盘桌面拒绝访问
- ssm
- Java从后台重定向(redirect)到另一个项目的方法
- 可重入与线程安全
- Android性能优化之电量优化
- post 请求 java接收处理得到请求数据