編輯:Android開發實例
前言
本章內容是android.view.GestureDetector,版本為Android 2.3 r1,翻譯來自"Haiya 胡蝶",再次感謝"Haiya 胡蝶" !。
正文
一、結構
public class GestureDetector extends Object
java.lang.Object
android.view.GestureDetector
二、概述
通過系統提供的MotionEvent
來監測各種手勢和(觸摸)事件。當一個指定的手勢事件發生時,GestureDetector.OnGestureListener
回調函數將通告用戶。這個類僅僅處理由觸摸引發的MotionEvent
(不能處理由軌跡球引發的事件)。要使用這個類需執行以下操作:
* 為你的View
建立一個GestureDetector實例。
* 在View的onTouchEvent(MotionEvent)方法裡確保調用(GestureDetector的)onTouchEvent(MotionEvent)方法。當相關事件發生時,定義在回調函數裡的方法將被執行。
三、嵌套類
interface GestureDetector.OnDoubleTapListener
雙擊和輕擊(confirmed single-tap)事件的監聽器。(譯者注:confirmed single-tap是用戶快速點一下觸摸屏所引發的動作。區分下面兩種情況:
1. 手指按下,停留0.2秒(估計值)以上再抬起時,不算confirmed single-tap
2. 快速點擊屏幕兩次不會引發兩次confirmed single-tap事件,而是引發一次DoubleTap事件。)
interface GestureDetector.OnGestureListener
在有手勢動作發生時,通知的監聽器
class GestureDetector.SimpleOnGestureListener
當只需要監聽部分手勢時,用於擴展的便捷類
四、構造函數
public GestureDetector (GestureDetector.OnGestureListener listener, Handler handler)
已棄用,替代方法:
GestureDetector(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler)
通過提供的監聽器來創建一個GestureDetector,這個構造函數只能用於非UI線程(因為它允許指定一個handler)。
參數
listener 用於觸發所有回調函數的監聽器,不能為空
handler 需要使用到的handler
異常
NullPointerException Listener或者handler為空時
public GestureDetector (GestureDetector.OnGestureListener listener)
已棄用,替代方法:
GestureDetector(android.content.Context, android.view.GestureDetector.OnGestureListener)
通過提供的監聽器來創建一個GestureDetector。你只能於UI線程裡使用這個構造函數(這是通常的情況)
參數
listener 用於觸發所有回調函數的監聽器,不能為空
異常
NullPointerException 如果Listener為空
參見
Handler()
public GestureDetector (Context context, GestureDetector.OnGestureListener listener)
通過提供的監聽器來創建一個GestureDetector。(通常情況下)你只能於UI線程裡使用這個構造函數
參數
context 應用程序上下文
listener 用於觸發所有回調函數的監聽器,不能為空
異常
NullPointerException 如果Listener為空
參見
Handler()
public GestureDetector (Context context, GestureDetector.OnGestureListener listener, Handler handler)
通過提供的監聽器來創建一個GestureDetector. (通常情況下)你只能於UI線程裡使用這個構造函數
參數
context 應用程序上下文
listener 用於觸發所有回調函數的監聽器,不能為空
handler 需要使用到的handler
異常
NullPointerException 如果Listener為空
參見
Handler()
public GestureDetector (Context context, GestureDetector.OnGestureListener listener, Handler handler, boolean ignoreMultitouch)
通過提供的監聽器來創建一個GestureDetector. (通常情況下)你只能於UI線程裡使用這個構造函數
參數
context 應用程序上下文
listener 用於觸發所有回調函數的監聽器,不能為空
handler 需要使用到的handler
ignoreMultitouch 是否忽視多點觸控(譯者注:僅適用於2.2以上的android版本,如果沒設置這個參數(即使用的是上一個構造函數),則會忽視多點觸控
,由於網上都沒有在GestureDetector傳入handler的例子,所以我也不明白這裡的handler的具體用意。如果有需要深入理解的朋友,請參照GestureDetector的源碼
異常
NullPointerException 如果Listener為空
參見
Handler()
五、公共方法
public boolean isLongpressEnabled ()
返回值
如果允許長按事件,則返回true,否則為false
public boolean onTouchEvent (MotionEvent ev)
分析指定的動作事件,如何滿足條件,就觸發在GestureDetector.OnGestureListener
中提供的回調函數
參數
ev 當前的觸摸事件(譯者注:如MotionEvent_DOWN, MotionEvent_UP)
返回值
如果GestureDetector.OnGestureListener
消耗了這個事件,則返回true,否則返回false
public void setIsLongpressEnabled (boolean isLongpressEnabled)
設置是否啟用長按。如果啟用長按,當用戶按下並保持按下狀態時,將收到一個長按事件,同時不再接收其它事件;如果禁用長按,當用戶按下並保持按下狀態然後再移動手指時,將會接收到scroll事件。長按默認為啟用。
參數
isLongpressEnabled 是否啟用接收長按事件
public void setOnDoubleTapListener (GestureDetector.OnDoubleTapListener onDoubleTapListener)
設置雙擊及其相關手勢的監聽器
參數
onDoubleTapListener 觸發所有回調函數的監聽器,或者設為null以停止監聽雙擊的手勢
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
在Activity中覆寫下面兩個方法:代碼如下: // 創建菜單 @Override public boo
本文實例講述了android編程實現懸浮窗體的方法。分享給大家供大家參考,具體如下: 突然對懸浮窗體感興趣,查資料做了個小Demo,效果是點擊按鈕後,關閉當前Ac
前面文章介紹了Activity以及Intent的使用,本文就來介紹Service。如果把Activity比喻為前台程序,那麼Service就是後台程序,Servi