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?
来自另一个线程的帮助:
您必须在这里了解的一件事是,当您将数据作为资源提供时,它不能在运行时进行修改。例如,您在可绘制文件夹中的可绘制对象无法在运行时进行修改。准确地说,“res”文件夹不能以编程方式修改。
这也适用于 Strings.xml,即“Values”文件夹。如果您想要一个必须在运行时修改的字符串,请创建一个单独的类并将您的字符串放在该类中并在运行时访问。这是我找到的最好的解决方案。
以编程方式将 R.string 的值更改 为 Andro Selva
您可以在 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 你想在哪里改变颜色?