2011-06-11 85 views
0

我試圖讓我的應用程序之間2背景顏色之間,然後返回到原始背景顏色這是我試着想它會改變的代碼背景然後暫停四分之一秒並再次改變顏色。有沒有辦法做到這一點。我對編程相當陌生,而且我仍然在學習這是我認爲可行的方式,但我願意接受任何建議。試圖閃爍我的Android應用程序的背景顏色

Bg.setBackgroundColor(getResources().getColor(R.color.C1)); 
try{Thread.sleep(250);} 
catch(InterruptedException e){} 
Bg.setBackgroundColor(getResources().getColor(R.color.C2)); 
try{Thread.sleep(250);} 
catch(InterruptedException e){} 
Bg.setBackgroundColor(getResources().getColor(R.color.C1)); 
try{Thread.sleep(250);} 
catch(InterruptedException e){} 
Bg.setBackgroundColor(getResources().getColor(R.color.C2)); 
try{Thread.sleep(250);} 
catch(InterruptedException e){} 
Bg.setBackgroundColor(getResources().getColor(BG[C-1])); 
+1

下一次,嘗試張貼:) – DreamOfMirrors 2011-06-11 17:49:11

+1

你嘗試在此之前格式化你的代碼?它工作嗎?你給了我們一些代碼,但沒有真正發佈你的問題。儘管最後一行看起來好像不能編譯(除非你有一個名爲'BG'的int數組和一個名爲'C'的int數組。 – 2011-06-11 17:54:33

+0

@nicholas提出的問題「你試過這個嗎?它工作嗎?」是最相關的問題,你是問'它是否會工作','是最好的做事方式'還是'爲什麼不行'?雖然我可以看到它可能不會工作,因爲'Thread .sleep(...)'會阻止UI線程阻止實時更新。 – Squonk 2011-06-11 17:59:09

回答

0

設置純色背景(無論你想要什麼,例如drawable),並使用動畫來實現它。您可以使用您希望的任何參數來閃爍它,包括速度,淡入淡出,重複計數等...所有聲明性定義在res/anim .xml文件中。

關於android動畫的教程超出了我想在這裏寫的範圍,但只是谷歌它。有幾乎任何你想要的例子。

你可以找到相關的動畫在這裏了Android API演示, http://developer.android.com/resources/samples/ApiDemos/res/anim/index.html

0

如果你使用這種方法,那麼我會建議在不同的線程比UI線程這樣做,因爲我認爲這將使UI線程睡眠250毫秒,並且因此將不響應。我甚至不會允許這樣做,並且UI線程可能會拋出異常。

這就是說,如果你不打算在IntereuptedException的catch子句中做任何事情,那麼爲什麼不使用SystemClock.sleep

最後,我建議忘記了這種方法,並使用動畫來代替,檢查Animation Resources