2012-02-04 40 views
0

所以我想讓SeekBar的功能像油門踏板一樣。Android:計算並更新TextView而不掛UI UI

當它處於中立位置(progress = 50)時,我的值不會改變。當SeekBar進度變得大於或小於50時,我從50中取出這個差值,並用它來計算一個被推送到TextView的值。

此值的加法或減法不會發生,因爲進度發生了變化,而是基於在該進度點持有多長時間。這意味着距離你越遠,價值越高,或者朝另一個方向越快。

我的第一個想法是一個線程有一個睡眠,然後更新值的while循環。我全局存儲了SeekBar的進度。這用於計算我的價值,但因爲它不能在UI線程上運行,我無法從中更新UI。

我怎樣才能讓這個「燃氣踏板」SeekBar的工作?

回答

1

這可能會在UI線程中運行。使用postDelayed來運行處理程序以稍後更新您的「速度計」(請求250毫秒似乎確定)。然而,您的Handler通常會運行,您將使用實際的時間而不是請求的時間間隔來計算您的速度計更新。 (你必須在任何物理模擬中這樣做,因爲無論你的更新函數被調用的頻率或多麼不規則,真實世界都會持續運行。)