2017-08-09 49 views
0

使用colors.xml我有一個水庫colors.xml /值任何佈局的Android

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="colorPrimary">#3F51B5</color> 
    <color name="colorPrimaryDark">#303F9F</color> 
    <color name="colorAccent">#FF4081</color> 
    <color name="indicator_unselected">#4D000000</color> 
    <!--Indigo 500--> 
    <color name="primary_500">#3F51B5</color> 
    <!--Indigo 700--> 
    <color name="primary_700">#303F9F</color> 
    <!--Pink 500--> 
    <color name="accent_500">#E91E63</color> 
    <!--Pink 700--> 
    <color name="accent_700">#C2185B</color> 
    <color name="black_trans80">#33000000</color> 

    <color name="blue_grey">#455A64</color> 
    <color name="red">#F44336</color> 
    <color name="pink">#E91E63</color> 
    <color name="purple">#9C27B0</color> 
    <color name="deep_purple">#673AB7</color> 
    <color name="indigo">#3F51B5</color> 
    <color name="blue">#2196F3</color> 
    <color name="light_blue">#03A9F4</color> 
    <color name="cyan">#00BCD4</color> 
    <color name="teal">#009688</color> 
    <color name="green">#4CAF50</color> 
    <color name="light_green">#8BC34A</color> 
    <color name="lime">#CDDC39</color> 
    <color name="yellow">#FFEB3B</color> 
    <color name="amber">#FFC107</color> 
    <color name="orange">#FF9800</color> 
    <color name="deep_orange">#FF5722</color> 
    <color name="brown">#795548</color> 
    <color name="grey">#E0E0E0</color> 

    <color name="white_70">#B3FFFFFF</color> 
    <color name="cyan_50">#E0F7FA</color> 
    <color name="amber_50">#FFF8E1</color> 
    <color name="purple_50">#F3E5F5</color> 
</resources> 

當我想用這些顏色的佈局,讓我們listview.xml(包含一個ListView佈局)。

我有一個LinearLayout和一個ListView在裏面。 所以,如果我想改變的LinearLayout的背景顏色我必須做這樣的事情:

android:background="@color/cyan" 

這工作。我的問題是:我的文件被稱爲顏色s .xml not color.xml 爲什麼仍然可以使用@color訪問這些自定義顏色?爲什麼@colors會給我一個錯誤?

+0

Huuuum ...也許是因爲'colors.xml'有一個顏色列表,而當你使用'@ color /'時,你必須得到一種顏色。使用'@ color'獲取多種顏色是不可能的# – GuilhermeFGL

+0

我想你錯了。我只是困惑,我無法使用'@ colors'訪問我的顏色列表,因爲我的文件在此之後被調用。 – ckbln

+1

請查看文檔:https://developer.android.com/guide/topics/resources/more-resources.html#Color請注意本節:'文件名是任意的。 元素的名稱將被用作資源ID。' –

回答

0

文件名無所謂,事物就是標籤。你可以用你的名字創建一個文件,並且可以在其中添加顏色。但請確保它們位於<color>標記中。我們通常遵循這個約定,並將顏色保存在colors.xml中,即使您可以將您的顏色保存在palette.xml中。

<color name=</color> // This tag matter and actually define resources 
        // It doesn't matter what is a file name 

在你的情況下,你正在訪問你的顏色資源的名稱是青色。我們從不指定它駐留在哪個文件中。

<color name="cyan">#00BCD4</color> 
1

XML標記的名稱是values文件夾下的所有內容。

<color name="cyan">#00BCD4</color> 

這裏標籤的名稱是color。所以你可以使用@color/來訪問它。