Android中延迟执行某个任务
2018-01-04 10:40
295 查看
Android基础
View的基础知识
View的位置主要由它的四个顶点来决定;分别对应于View的四个属性:Top,Bottom,Left,right;四个值是相对于父容器的。Left = getLeft();
Right = getRight();
Top = getTop();
Bottom = getBottom();
Android 3.0 添加的参数:x,y(x,y表示View的左上角的坐标,相对于父容器);translationX,translationY(表示VIew左上角相对于父容器的偏移量,默认为0)。
View在平移过程中,top,left不会发生改变的,改变的是x,y,transLationX和translationY的值。
MotionEvent是手指接触屏幕之后产生的以下列事件,主要包括(ACTION_DOWN,ACTION_UP,ACTION_UP)。
点击事件时间序列:DOWN —> UP;
滑动事件序列:DOWN —> MOVE —> … —> MOVE —> UP;
通过MotionEvent对象可以获取发生点击事件的x,y坐标;
getX / getY :该点击位置相对于VIew左上角的x,y坐标;
getRawX / getRawY :该点击位置相对于手机屏幕左上方的x,y坐标;
TouchSlop 是系统所能识别的被认为是最小的滑动距离,这是一个常量,和设备有关。
通过ViewConfiguration.get(getContext()).getScaledTouchSlop()获得。
这个常量的意义在于处理滑动时可以通过这个值来做一些过滤。
VelocityTracker 速度追踪,用于追踪手指在滑动过程中的速度。
在View的onTouchEvent方法中:
VelocityTracker velocitTracker = VelocityTracker.obtain(); velocitTracker.addMovement(event); velocitTracker.computeCurrentVelocity(1000); int xVelocity = (int) velocitTracker.getXVeloticy(); int yVelocity = (int) velocitTracker.getYVeloticy(); ... velocitTracker.clear(); velocitTracker.recycle();
获取速度前必须先计算速度,即computeCurrentVelocity()方法,单位毫秒;
速度是指该段时间内,手指划过的像素数;
速度可以为负值(水平方向右向左为负值);
当不需要它的时候,通过clear()来重置并回收内存;
GestureDetector 手势检测,用于辅助检测用户的单击,长按,滑动,双击等行为。
创建对象并实现监听器的onGestureListener或OnDoubleTapListener接口:
GestureDetector mGestureDetector = new GestureDetector(this); //解决长按屏幕后无法拖动的现象 mGestureDetector.setIsLongpressEnabled(false);
接管View的onTouchEvent方法,在待监听的View的onTouch方法中添加以下代码:
boolean consume = mGestureDetector.onTouchEvent(event); return consume;
如果只是监听滑动相关的,建议自己在onTouchEvent中实现,如果要监听双击这种行为的话,那么就是用GestureDetector。
Scroller 弹性滑动对象,用于实现View的弹性滑动(平移滑动比较生硬)。Scroller本身无法让View滑动,它需要和View的computeScroll方法配合才能共同完成这个功能。
相关文章推荐
- android中延迟执行任务的方式
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android开发中延迟执行任务方法
- android中延迟执行某个任务
- android中延迟执行某个任务(基础备用)
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务