小编use*_*019的帖子

在layout/main.xml主布局文件中的TextView中设置textColor而不引用colors.xml文件.(它需要#RRGGBB而不是@ color/text_color)

我正在尝试为我正在编写的程序设置一些通用颜色.我创建了一个colors.xml文件,并尝试直接引用layout.xml文件中的颜色.我相信我正在这样做,但它给了我以下错误:

Color value '@colors/text_color' must start with #
Run Code Online (Sandbox Code Playgroud)

这是我的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>
Run Code Online (Sandbox Code Playgroud)

这是我的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>
Run Code Online (Sandbox Code Playgroud)

我查看了android开发者网站上的一些参考资料:更多资源类型:Color并找到了这段代码:

示例:保存在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>
Run Code Online (Sandbox Code Playgroud)

此应用程序代码检索颜色资源:

Resources res = getResources();
int color = res.getColor(R.color.opaque_red);
Run Code Online (Sandbox Code Playgroud)

此布局XML将颜色应用于属性:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/translucent_red"
    android:text="Hello"/>
Run Code Online (Sandbox Code Playgroud)

我认为我的两个xml文件非常接近这个例子 - 但唯一的区别是我没有使用任何应用程序代码来检索颜色资源.我不相信这是必要的(但这是有区别的.)我以为我会看到是否有其他人有类似的问题或解决方案?或者这是一个错误?

我上周更新了所有的android sdk(和Eclipse插件)文件,所以我相信它们是最新的.

android

48
推荐指数
3
解决办法
21万
查看次数

标签 统计

android ×1