在layout / main.xml主布局文件中的TextView中设置textColor不引用colors.xml文件。 (它想要#RRGGBB而不是@ color / text_color)
我正在为我正在编写的程序设置一些通用的颜色。 我创build了一个colors.xml文件,并试图直接引用layout.xml文件中的颜色。 我相信我正在做这个正确的,但它给了我以下错误:
Color value '@colors/text_color' must start with #
这是我的res / values / colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="background_color">#888888</color> <color name="text_color">#00FFFF</color> </resources>
这是我的res / layout / main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:layout_width="fill_parent" android:text="@string/hello" android:layout_height="wrap_content" android:id="@+id/TextView01" android:textColor="@colors/text_color"/> </LinearLayout>
我看了一下在android开发人员网站上的一些引用: 更多的资源types:颜色和发现这个代码:
示例:保存在res / values / colors.xml中的XML文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
这个应用程序代码检索颜色资源:
Resources res = getResources(); int color = res.getColor(R.color.opaque_red);
此布局XML将颜色应用于属性:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
我认为我的两个XML文件遵循这个例子非常接近 – 但唯一的区别是,我没有使用任何应用程序代码来检索颜色资源。 我不认为这是必要的(但这是一个区别)。我想我会看看是否有其他人有类似的问题或解决scheme? 或者这是一个错误?
我上周更新了所有的android sdk(和Eclipse插件)文件,所以我相信它们是最新的。
在对这种情况进行实验之后: android:textColor="@colors/text_color"
是错误的,因为@color
不依赖于文件名。 你可以命名你的资源文件foobar.xml,没关系,但如果你已经定义了一些颜色,你可以使用@color/some_color
来访问它们。
更新—-从你的链接:
文件位置:res / values / colors.xml文件名是任意的。 该元素的名称将被用作资源ID。
仅使用标准颜色代码的变体:
android:textColor="#ff0000"
你在你的xml中有一个错字; 它应该是:
android:textColor="@color/text_color"
这是“@color”,没有“s”。
你应该在xml中写入textcolor
android:textColor="@color/text_color"
要么
android:textColor="#FFFFFF"