2009-05-28 110 views
3

我想根據軌跡球移動在屏幕上移動圖像。我能夠使用onTrackballEvent方法捕捉運動。但是這被稱爲非常小的浮動值(我相信每次輪換?)的軌跡球。Android - 軌跡球事件結束了嗎?

現在,當使用LayoutParams指定視圖的X和Y位置應該是整數時,每次旋轉移動視圖都沒有意義。相反,我只想在用戶停止旋轉軌跡球之後才移動視圖。

有沒有什麼方法可以判斷用戶是否停止使用軌跡球?

回答

1

如果沒有(我不知道Android),經典的方法是在每個事件中啓動一個計時器,並跟蹤其中報告的增量(通過將它們添加到運行總和中,一個用於X和Y)。在任何後續事件中,在定時器觸發之前,只需重新啓動相同的定時器,將其觸發推向未來。

當用戶停止生成事件時,計時器最終會觸發,然後您可以應用所有動作的總和並清除總和。

必須選擇合適的超時時間,以便用戶交互不會覺得太慢。也許是200-300毫秒或更多。這很容易調整,直到它感覺「正確」。

1

我也從設置閾值中獲得了很多價值。因此,如果特定方向的總體運動總和達到給定量,則觸發導航事件。

+0

謝謝haseman。那就是我所做的。一旦差異達到某種顯着水平,我就改變視圖的位置 – lostInTransit 2009-05-29 04:09:08