Android知识Android Android开发

Android中View的基础知识

2016-08-17  本文已影响128人  cooperise

View的位置参数

PS:View在平移的过程中,top和left表示的是原始左上角的位置信息,其值并不会发生改变,此时发生改变的是x、y、translationX和translationY这四个参数。

x = left + translationX;
y = right + translationY;

MotionEvent

如:点击屏幕后离开,事件序列为DOWN -> UP
点击屏幕滑动一会再松开,事件序列为DOWN -> MOVE -> ... -> MOVE -> UP

获得点击事件发生的x和y坐标:

TouchSlop

TouchSlop是系统所能识别出的被认为是滑动的最小距离,可通过如下方式获得

ViewConfiguration.get(getContext()).getScaledTouchSlop();

VelocityTracker

速度追踪,用于追踪手指在滑动过程中的速度,包括水平和竖直方向的速度。使用过程如下:

VelocityTracker velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(event);
velocityTracker.computeCurrentVelocity(1000);    //先根据时间计算速度
int xVelocity = (int) velocityTracker.getXVelocity();
int yVelocity = (int) velocityTracker.getYVelocity();
velocityTracker.clear();
velocityTracker.recycle();

GestureDetector

手势检测,用于辅助检测用户的单击、滑动、长按和双击等行为。

GestureDetector mGestureDetector = new GestureDetector(this);
// 解决长按屏幕后无法拖动的现象
mGestureDetector.setIsLongpressEnabled(false);
boolean consume = mGestureDetector.onTouchEvent(event);
return consume;

表 OnGestureListener和OnDoubleTapListener中的方法介绍:

方法名 描述 所属接口
onDown 手指轻轻触摸屏幕的一瞬间 OnGestureListener
onShowPress 手指轻轻触摸屏幕,尚未松开和拖动 OnGestureListener
onSingleTapUp 手指(轻轻触摸屏幕后)松开 OnGestureListener
onScroll 手指按下屏幕并拖动 OnGestureListener
onLongPress 用户长久按着屏幕不放 OnGestureListener
onFling 用户按下触摸屏,快速滑动后松开 OnGestureListener
onDoubleTap 双击,第二下单击Down触发 OnDoubleTapListener
onSingleTapConfirmed 严格的单击行为(只能是单击,不能是双击中的一次单击) OnDoubleTapListener
onDoubleTapEvent 表示发生了双击行为 ,DOWN、MOVE、UP都会触发 OnDoubleTapListener
上一篇 下一篇

猜你喜欢

热点阅读