2012-04-24 33 views
2

我想將顏色資源文件(color.xml)中的顏色ID動態地應用到按鈕的背景顏色。如何使用color.xml文件中的顏色資源動態地應用按鈕背景顏色

btn.setBackgroundColor(R.color.green);

我也試過這種

btn.setBackgroundColor(Resources.getSystem().getColor(R.color.green)); 

,但它不工作。

如果我申請

btn.setBackgroundColor(Color.Green); 

其工作。

但我需要從color.xml文件應用顏色資源。請讓我知道我該怎麼做。

回答

7

你應該使用這樣的:

btn.setBackgroundColor(getResources().getColor(R.color.Green)); 

和第二種方式:

Resources resources = YourActivity.this.getResources(); 
Drawable drawable = resources.getDrawable(R.color.Green); 
btn.setBackgroundDrawable(drawable); 

您color.xml樣子:

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
     <drawable name="red">#f00</drawable> 
     <drawable name="green">#0f0</drawable> 
     <drawable name="gray">#ccc</drawable> 
    </resources> 
+1

是的,這工作得很好謝謝somuch伊姆蘭....快速響應... :) – praveenb 2012-04-24 09:52:06

+0

@Praveenb:看我的編輯回答 – 2012-04-24 10:02:49

+0

謝謝你somuch .... imran – praveenb 2012-04-24 10:03:43

0

在值創建XML稱爲顏色,添加你的自定義顏色。 現在你可以寫R.color「名」 (又名重命名顏色的顏色。)