編輯:Android開發實例
上次我們提供了一個基本的框架可以實現Android平台上的手勢操作,借助GestureDetector類可以輕松實現,詳細查看 GestureDetector手勢識別類 - 入門篇 本次結合網友總結的內容一起來探討下具體的應用。
首先上次Android123寫的較為簡單,如果網友不太明白可以看看更具體些的內容:
boolean onDoubleTap(MotionEvent e)
解釋:雙擊的第二下Touch down時觸發
boolean onDoubleTapEvent(MotionEvent e)
解釋:雙擊的第二下Touch down和up都會觸發,可用e.getAction()區分。
boolean onDown(MotionEvent e)
解釋:Touch down時觸發
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解釋:Touch了滑動一點距離後,up時觸發。
void onLongPress(MotionEvent e)
解釋:Touch了不移動一直Touch down時觸發
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解釋:Touch了滑動時觸發。
void onShowPress(MotionEvent e)
解釋:Touch了還沒有滑動時觸發
(與onDown,onLongPress比較
onDown只要Touch down一定立刻觸發。
而Touchdown後過一會沒有滑動先觸發onShowPress再是onLongPress。
所以Touchdown後一直不滑動,onDown->onShowPress->onLongPress這個順序觸發。
boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
解釋:上面這兩個函數都是在touch down後又沒有滑動(onScroll),又沒有長按(onLongPress),然後Touchup時觸發。
點擊一下非常快的(不滑動)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed
點擊一下稍微慢點的(不滑動)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
有了這麼多的響應方式,我們能更加方便的對用戶的觸摸操作進行響應,對各種動作都有所對應。那麼這個類如何使用呢,其實非常簡單,在view的新建一個GestureDetector的對象。
構造函數裡
gestureDetector = new GestureDetector(new SelfGestureDetectorListener());
然後在View的onTouchEvent裡以下這樣用,就可以在gestureDetector的事件裡寫自己的代碼了。
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
}
有關上面的 onTouchEvent方法,我們可以直接判斷MotionEvent的類型,對於手勢移動僅僅捕獲ACTION_MOVE即可,我們通過參數MotionEvent e1, MotionEvent e2,float distanceX, float distanceY可以獲取操作變化。
比如 distanceX > 0 向右邊移動,distanceX < 0 則向左邊,distanceY > 0 向上滾動, distanceY < 0 向下滾動。測試時我們可以封裝該類,每個方法觸發時使用Logcat打印出動作和x,y坐標即可了解實際的狀況,更深入和復雜的手勢探測,Android開發網將在下次寫到。
本文為大家演示了如何使用Chronometer控件實現Android計時器的實
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
Android提供了很多控件便於開發者進行UI相關的程序設計。但是很多時候,默認的一些UI設置不足以滿足我們的需求,要麼不好看,要麼高度不夠,亦或者是與應用界面不