2011-09-04 59 views
0

我想要檢測用戶何時觸摸屏幕5秒鐘。沒有像onLongTouch()這樣的東西被考慮在內。機制應該是透明的,因爲我重寫onTouchEvent()來更改ViewFlipper中的視圖。如何檢測Activity上的5秒持續觸摸事件?

我應該手動創建一個新的線程來定時觸摸嗎?

回答

3

當MotionEvent爲MotionEvent.ACTION_DOWN時,您可以啓動計時器,並在事件爲MotionEvent.ACTION_UP時將其停止。 這是用戶的手指在屏幕上的時間(包括拖動)。 如果要在拖動時重新啓動計時器,請檢查ACTION_MOVE並重新啓動計時器。但我不建議這樣做,因爲即使用戶在屏幕上按住他的手指時輕輕地輕輕移動了他的手,也可能會引發這些事件。

+1

您也可以設置ACTION_MOVE事件的閾值,並忽略它們直到達到某個頻率(即用戶實際上在拖動) –

+0

您是否在考慮java'Timer'類? –

+1

對不起,我沒有解釋清楚。 在ACTION_DOWN處使用System.currentTimeMillis()來保存當前時間並再次檢查ACTION_UP。 – IncrediApp