在Android的任何布局中使用colors.xml

时间:2017-08-09 18:14:37

标签: android android-layout android-xml android-theme

我在res / value

中有一个colors.xml
<?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(包含列表视图的布局)。

我有一个LinearLayout和一个ListView。 所以,如果我想改变LinearLayout的背景颜色,我必须做这样的事情:

android:background="@color/cyan"

这很有效。我的问题是:我的文件名为color s .xml而不是color.xml 为什么我仍然可以使用@color访问这些自定义颜色?为什么@colors会给我一个错误?

2 个答案:

答案 0 :(得分:1)

values文件夹下,XML标记的名称非常重要。

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

此处标记的名称为color。因此,您可以使用@color/访问它。

答案 1 :(得分: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>