无法从android中的colors.xml获取颜色

时间:2014-05-10 14:46:53

标签: android xml colors

这可能看起来像一个简单的问题,但我对此持续了1小时的打击。

我已在color.xml文件中声明了颜色,但遗憾的是在将color属性设置为textview时无法获取这些颜色。

Color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="dark_snuff">#2d3037</color>  
   <color name="silver">#C0C0C0</color>
   <color name="dark_gray">#A9A9A9</color> 
</resources>

layout.xml

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dip"
            android:orientation="horizontal" >

            <TextView
            android:id="@+id/textView19"
            android:layout_width="match_parent"
            android:layout_height="40dip"
            android:text="Date"
            android:textAppearance="?android:attr/textAppearanceLarge" 
            android:background="@android:Color/dark_snuff"/>//error part

        </LinearLayout>

错误:

error: Error: No resource found that matches the given name (at 'background' with value '@android:Color/ dark_snuff').

请帮我解决这个问题。

感谢您的时间。

5 个答案:

答案 0 :(得分:1)

只需写下@color/dark_snuff即可。应该这样做!

编辑为@Machinarius说,前缀android指的是Android内置颜色的命名空间,而你想要自己项目中的颜色。此外,在资源标识符中,所有内容都必须是小写的,因此即使您尝试访问的资源存在于相应的命名空间中,大写的Color也不会起作用。

答案 1 :(得分:1)

@android:Color/dark_snuff refers to the default built-in colors available in android. So plase use android:background="@color/dark_snuff" which WILL do the trick. 

答案 2 :(得分:1)

@android:color/...用于从Android库获取资源颜色。而@color/...用于从colors.xml文件中获取资源颜色(最后使用&#34; s&#34;并且没有上限)到应用程序中。

android:background="@color/dark_snuff"  

应该是获取您自己的color项的解决方案。但是,如果您想使用Android资源颜色,则如下所示:

android:background="@android:color/darker_gray"  

没有上限。您可以在Resources Documentation中找到所有这些内容。

答案 3 :(得分:0)

您需要在xml中创建一组样式(定期在res / values / styles.xml中)

<color name="gray">#eaeaea</color>
<color name="titlebackgroundcolor">#00abd7</color>
<color name="titlecolor">#666666</color>

在布局文件中,您可以调用颜色或样式:

android:textColor="@color/titlecolor"

答案 4 :(得分:0)

首先,您不应该使用Caps(大写字母)保存文件名,如果您正在调用的应用程序res文件夹应该@color/dark_snuff不像@android:Color/dark_snuff