編輯:Android開發實例
一個activity中new一個GestureDetector之後,裡面會實現一下的方法:
onSingleTapUp
onShowPress
onScroll
onLongPress
onFling
onDown
說一下這些方法都是由那些MotionEvent觸發的
今天的項目用到了onSingleTapUp和onShowPress和onLongPress和onFling;
//用戶(輕觸觸摸屏後)松開,由一個1個MotionEvent ACTION_UP觸發
onSingleTapUp 這個事件執行的順序是onDown-》onShowPress-》onSingleTapUp
// 用戶輕觸觸摸屏,尚未松開或拖動,由一個1個MotionEvent ACTION_DOWN觸發
// 它與onDown()的區別,強調的是沒有松開或者拖動的狀態
onShowPress
而onDown也是由一個MotionEvent ACTION_DOWN觸發的,但是他沒有任何限制,也就是說當用戶點擊的時候,首先MotionEvent ACTION_DOWN,onDown就會執行,如果在按下的瞬間沒有松開或者是拖動的時候onShowPress就會執行,如果是按下的時間超過瞬間(這塊我也不太清楚瞬間的時間差是多少,一般情況下都會執行onShowPress),拖動了,就不執行onShowPress。
// 用戶長按觸摸屏,由多個MotionEvent ACTION_DOWN觸發
onLongPress 這個事件執行的順序是onDown-》onShowPress-》onLongPress
// 用戶按下觸摸屏、快速移動後松開,由1個MotionEvent ACTION_DOWN, 多個ACTION_MOVE, 1個ACTION_UP觸發
onFling
另外需要說的一點就是:
如果你是在一個大的view上裝載了一個一個的小view,如果你想讓大的view有界面動態效果(比如左右向下滑動),那麼你必須將這些小的view加入setOnTouchListener,然後你可以在OnTouchListener方法中加入如下方法將你的MotionEvent事件傳到gestureDetector中。如下:
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE: {
gestureDetector.onTouchEvent(event);
break;
}// inner case MOVE
case MotionEvent.ACTION_UP: {
v.setPressed(false);
Log.i("cat", "CCCCCCCCCCCCCCCC");
gestureDetector.onTouchEvent(event);
// TODO animation
return true;
}// inner case UP
case MotionEvent.ACTION_DOWN: {
v.setPressed(true);
gestureDetector.onTouchEvent(event);
break;
}// inner case UP
}// inner switch
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
本文實例講述了Android4.X中SIM卡信息初始化過程詳解。分享給大家供大家參考,具體如下: Phone 對象初始化的過程中,會加載SIM卡的部分數據信息,這
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
這篇文章主要為大家詳細介紹了Android仿網易客戶端頂部導航欄效果,幫助大家制作網易客戶端導航欄特效,感興趣的小伙伴們可以參考一下 最近剛寫了一個網易客戶端首頁導航條