在strings.xml中存储十六进制颜色值

jbl*_*blz 14 string layout android hex

我正在尝试将hex color我的文本的值存储在strings.xml中,因此所有布局文件都将引用它(以便能够快速更改项目的所有布局文本)但是我无法引用它.

android:textColor="#FFFFFF"我的XML布局工作正常.但是android:textColor="@strings/textColor",当我包含#而不包括时,使用会给我一个错误.

当我不包括#它要求#.当我添加#DDMS报告时:

07-13 04:35:22.870:ERROR/AndroidRuntime(331):引起:android.content.res.Resources $ NotFoundException:来自可绘制资源ID的文件#FF0000#0x7f040003:.xml扩展名需要

有谁知道如何在布局文件中组合语句?例如textColor="#"+"@strings/textColor,然后只需将字符串设置"FFFFFF"为.

chr*_*man 27

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

<color name="gray">#eaeaea</color>
<color name="titlebackgroundcolor">#00abd7</color>
<color name="titlecolor">#666666</color>
Run Code Online (Sandbox Code Playgroud)

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

android:textColor="@color/titlecolor"
Run Code Online (Sandbox Code Playgroud)

查看一些示例:

http://developer.android.com/guide/topics/ui/themes.html


ada*_*amp 5

您可以声明显式颜色资源.按照惯例,它们放在res/values/colors.xml中:

<resources>
    <color name="my_color">#FFFFFFFF</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

然后在布局或其他地方你可以写 android:textColor="@color/my_color"


Par*_*ani 5

为此,您可以做一件事:在values文件夹中定义colors.xml,然后使用#添加颜色值,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="myColor">#000000</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

那么如何在应用程序中引用此颜色值:

静态的:

android:textColor="@color/myColor"
Run Code Online (Sandbox Code Playgroud)

编码:

TextView1.setTextColor(R.color.myColor);
Run Code Online (Sandbox Code Playgroud)