0

In my colors.xml file I have a value defined for example as:

<color name="red">#ffff0000</color>

How can I change the value to a different color programatically?

4

2 回答 2

0

来自另一个线程的帮助:

您必须在这里了解的一件事是,当您将数据作为资源提供时,它不能在运行时进行修改。例如,您在可绘制文件夹中的可绘制对象无法在运行时进行修改。准确地说,“res”文件夹不能以编程方式修改。

这也适用于 Strings.xml,即“Values”文件夹。如果您想要一个必须在运行时修改的字符串,请创建一个单独的类并将您的字符串放在该类中并在运行时访问。这是我找到的最好的解决方案。

以编程方式将 R.string 的值更改 为 Andro Selva

于 2013-10-18T21:27:23.203 回答
-1

您可以在 color.xml 中同时拥有两种颜色,并在显示/活动焦点之前更改它。

<color name="red">#ffff0000</color>
<color name="blue">#0000FF</color>

带画布:

Paint paint = new Paint();
if(shouldBeRed()) {
  paint.setColor(R.color.red);
} else {
  paint.setColor(R.color.blue);
}
canvas.drawRect(rect, paint);

@user2779837 你想在哪里改变颜色?

于 2013-10-18T21:51:55.503 回答