2014-07-11 51 views
0

我在strings.xml中有一個字符串數組,它是一個顏色名稱的數組。而且,我在colors.xml中列出了與數組項目同名的顏色。現在,我試圖使用strings.xml中的顏色名稱(字符串)來設置視圖的背景。我怎樣才能做到這一點?顏色和顏色名稱

<color name="aliceBlue">#F0F8FF</color> 
    <color name="antiqueWhite">#faebd7</color> 
    <color name="antiqueWhite1">#ffefdb</color> 
    <color name="antiqueWhite2">#eedfcc</color> 
    <color name="antiqueWhite3">#cdc0b0</color> 
    <color name="antiqueWhite4">#8b8378</color> 
    <color name="aquaMarine1">#7fffd4</color> 
    <color name="aquaMarine2">#76eec6</color> 
    <color name="aquaMarine4">#458b74</color> 
    <color name="azure1">#f0ffff</color> 
    <color name="azure2">#e0eeee</color> 
    <color name="azure3">#c1cdcd</color> 
    <color name="azure4">#838b8b</color> 

color.xml

<string-array name="colorNameArray"> 
    <item>AliceBlue</item> 
    <item>AntiqueWhite</item> 
    <item>AntiqueWhite1</item> 
    <item>AntiqueWhite2</item> 
    <item>AntiqueWhite3</item> 
    <item>AntiqueWhite4</item> 
    <item>aquamarine1</item><item> 
    aquamarine2</item> 
    <item>aquamarine4</item> 
    <item>azure1</item> 
    <item>azure2</item> 
    <item>azure3</item> 
    <item>azure4</item> 

的strings.xml

請傢伙,你的幫助表示讚賞。

+1

我認爲你必須使用一個開關。 – JJ86

+0

爲什麼使用colorNameArray?你可以解釋嗎 ? – MilapTank

+0

spinner?從列表中選擇一種顏色? – committedandroider

回答

1

變化

<item>AliceBlue</item> 

<item>@color/AliceBlue</item> 

改變所有的人,你需要@color/標籤

更多信息之前,請參閱:

How can I save colors in array.xml and get its back to Color[] array

那麼你可以得到你的顏色爲:

int[] colorArray = getResources().getIntArray(R.array.colorNameArray); 

那麼你可以設置你的顏色。

,如果你有一個以上的項目,你需要改變所有的人都可以使用下面的代碼:

1-創建的View

ArrayList<View> views = new ArrayList<View>(); 

-2-酮數組添加所有查看所需設置背景列表

views.add(iv); 
    views.add(tv); 

3-在聲明中改變一切的背景,如:

for (int i = 0 ; i < views.size() ; i++) 
    { 
     // set background with views.get(i) and colorArray[i] 

    } 
+0

,但問題是,你需要訪問顏色本身在R .java – committedandroider

+0

ya @committedandroider我得到了我,我會編輯我的文章,但OP陣列也有問題 –

+1

聰明的解決方案,但不會爲他的古董白人工作。支持的格式爲:#RRGGBB #AARRGGBB'紅','藍','綠','黑','白','灰色','青色','洋紅色','黃色','淺灰色','深灰色'greg'lightgrey'darkgrey'aqua'fuschia''lime'''栗色'''海軍''橄欖''紫色'銀'''藍綠色'將拋出非法的參數異常,如果顏色不是那些列出的顏色之一 – committedandroider

0

獲取對視圖的java對象引用。 並在該引用上調用此方法 setBackgroundColor(getResources()。getColor(R.color.color_name));