View的事件体系(一)kao

1.View是界面层控件的抽象,也就是一个控件,是界面层最基本的组成单位。

ViewGroup是控件组,是View的容器。    

ViewGroup是多个控件组成的控件,以此构成View树的结构。




2.VelocityTracker用于追踪手指的滑动速度

使用方法:在View的onTouchEvent中添加如下代码:

VelocityTracer velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(event);


之后可以用下面代码获得滑动速度
//1000ms内手指移动的像素数
velocityTracker.computeCurrentVelocity(1000);
int xVelocity = (int)velocityTracker.getXVelocity();
int yVelocity = (int)velocityTracker.getYVelocity();



当不再需要使用时,需用下面代码回收

velocityTracker.clear();
velocityTracker.recycle();

3.GestureDetecor使用方法

1.在当前类中创建一个GestureDetector实例:
private GestureDetector mGestureDetector;
2.创建一个Listener来实时监听当前面板操作手势:
class LearnGestureListener extends GestureDetector.SimpleOnGestureListener
3.在初始化时,将Listener实例关联当前的GestureDetector实例:
mGestureDetector = new GestureDetector(this, new LearnGestureListener());
4.利用onTouchEvent方法作为入口检测,通过传递MotionEvent参数来监听操作手势:
mGestureDetector.onTouchEvent(event);

接口中方法有:

onDown(手指触摸屏幕一瞬间,ACTION_DOWN触发)

onShowPress(手指轻轻触摸屏幕,没有松开,没有拖动,ACTION_DOWN触发)

onSingleTapUp(手指轻轻触摸屏幕后松开,ACTION_UP触发,单击行为)

onScroll(手指按下并在屏幕上拖动,由ACTION_DOWN和若干ACTION_MOVE组成)

onLongPress(长久按着屏幕不放)

onFling(按下屏幕,快速滑动后松开,由ACTION_DOWN 和若干 ACTION_MOVE 和一个ACTION_UP组成)

onDoubleTap(双击,由两次连续的单击组成)

onSingleTapConfirmed(单击行为,但这和onSingleTapUp不同,他不能再紧跟着发生单击行为,所以和onDoubleTap是互斥存在的)

onDoubleTapEvent(双击事件,期间ACTION_DOWN,ACTION_MOVE,ACTION_UP都会引发该事件)


参考:Android开发艺术探索

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章