我試圖拖動疊加地圖,並且如果用戶點擊某個圖釘,還會顯示信息框。爲此,我需要測量MotionEvent.ACTION_DOWN
和MotionEvent.ACTION_UP
之間的時間。爲了讓它感覺儘可能的自然,我想知道Android使用單抽頭(目前我使用的是180ms)還有一個長抽頭的價值。Android中單擊和長按的時間長度
謝謝!
我試圖拖動疊加地圖,並且如果用戶點擊某個圖釘,還會顯示信息框。爲此,我需要測量MotionEvent.ACTION_DOWN
和MotionEvent.ACTION_UP
之間的時間。爲了讓它感覺儘可能的自然,我想知道Android使用單抽頭(目前我使用的是180ms)還有一個長抽頭的價值。Android中單擊和長按的時間長度
謝謝!
的Android源使用一個單一的水龍頭爲125ms和500ms的是長按時間:
private static final int PRESSED_STATE_DURATION = 125;
private static final int DEFAULT_LONG_PRESS_TIMEOUT = 500;
謝謝,我想我必須使用TAP_TIMEOUT而不是PRESSED_STATE_DURATION,這與我已經使用的180ms完全相同。 – timoschloesser
你並不需要編寫的代碼之間'單區分-Tap'和'long-Tap'。而是使用'GestureDetector'。讓我知道你是否需要更多細節。 – Luis
我試着從ItemizedOverlay onTap(),它沒有被觸發。我假設onTouchEvent()我需要拖動消耗所有觸摸事件。所以我不認爲GestureDetector會起作用......也許你誤解了我的問題,導致我的主要問題是區分單擊/長按和滾動。 – timoschloesser
'GestureDetector'不會攔截動作事件,您需要通過調用'gestureDetector.onTouchEvent(ev)'將它們提供給'GestureDetector'。所以,只要你能得到一個運動事件,你就可以將它提供給'GestureDetector'。運動事件由類進行分析,並在適當時對onDoubleTap(),onLongPress(),onScroll(),onSingleTapConfirmed()等進行回調。也許你應該看看http://developer.android.com/reference/android/view/GestureDetector.html中的文檔。 – Luis