2013-04-08 97 views
1

爲什麼CustomButton結果爲灰色?在R.color.blue中,綠色和紅色真的是紅色,藍色和紅色。我試圖從colors.xml中隨機選擇顏色爲紅藍綠色的按鈕顏色。如何在陣列顏色中設置按鈕背景?

public void CustomButton(int btnId) { 
    Button btn = (Button) findViewById(btnId); 

    int[] btnColor = { R.color.blue, R.color.green, R.color.red }; 
    Random random = new Random(); 
    int c = btnColor[random.nextInt(btnColor.length)]; 
    btn.setBackgroundColor(c); 

} 
+0

我不完全確定你在做什麼,但如果你想隨機化按鈕的顏色,我認爲這可能會幫助你 - > http://stackoverflow.com/questions/6185931/how-設置按鈕顏色 – Hanut 2013-04-08 17:24:29

回答

1

試試這個

你應該使用

getResources().getColor(yourcolorid),使色彩

小的變化在你的代碼

更改此

btn.setBackgroundColor(c); 

這個

btn.setBackgroundColor(getResources().getColor(c)); 
+0

解決。謝謝。但我想知道爲什麼?您的代碼和我的代碼之間的區別。 – 2013-04-08 17:26:04

+0

@CingSianDal由於您正在分配由R生成的Color的ID,但顏色的值 – Pragnani 2013-04-08 17:37:17

0

除非你使用自定義顏色,嘗試刪除 'R':

public void CustomButton(int btnId) { 
    Button btn = (Button) findViewById(btnId); 

    int[] btnColor = {Color.BLUE, Color.GREEN, Color.RED}; 
    Random random = new Random(); 
    int c = btnColor[random.nextInt(btnColor.length)]; 
    btn.setBackgroundColor(c); 

} 

這將使用內置Android類Color

+0

我不想使用Color.BLUE Color.GREEN Color.ORANGE我想通過隨機調用colors.xml中的顏色。請..解決it.please – 2013-04-08 17:15:10

+0

@CingSianDal檢查我的答案... – Pragnani 2013-04-08 17:22:10