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開發藝術探索

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