2012-09-07 115 views
7

我試圖用我自己的顏色設置我的FrameLayout的背景顏色。android:如何使用自定義顏色?

我創建了一個.xml文件,其中包含我自己的顏色。 這就是:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="red">#FF0000</color> 
    <color name="orange">#FF7D00</color> 
    <color name="yellow">#FFFF00</color> 
    <color name="green">#00FF00</color> 
    <color name="blue">#00B4FF</color> 
    <color name="black">#000000</color> 
</resources> 

而這裏就是我試着去設置的backgroundColor的代碼,但是當我運行應用程序時,FrameLayout始終是灰色的,爲什麼?:

FrameLayout MyFrameLayout = new FrameLayout(this); 
LayoutParams MyFrameLayoutParam = new LayoutParams(LayoutParams.FILL_PARENT, 200); 
MyFrameLayout.setLayoutParams(MyFrameLayoutParam); 

MyFrameLayout.setBackgroundColor(R.color.red); 

Parent.addView(MyFrameLayout); 

回答

9

您需要在設置之前從資源中檢索顏色。您正在分配R.java id而不是實際值。

Color red = getApplicationContext().getResources().getColor(R.color.red) 
MyFrameLayout.setBackgroundColor(red); 
+0

我認爲這是R.color.red而不是R.id.red – vincentp

+0

是的,很好找。 – tsmith

0

您可以使用setBackgroundResource(彩色)

下面的例子:

relativelayout.setBackgroundResource(R.color.green);

2

要使用自定義顏色在XML中,你會使用類似:

android:color="@color/orange"

3

T他讓按鈕背景變成綠色,找到你想要的顏色十六進制。

yourButton.setBackgroundColor(Color.parseColor(「#25b72f」));