【问题标题】:Override color value in color.xml file覆盖 color.xml 文件中的颜色值
【发布时间】:2013-04-25 13:18:18
【问题描述】:

有没有办法覆盖已经在 color.xml 文件中设置的颜色?例如 - 我将布局上的背景颜色设置为 backgroundColor = "@color/background" 背景的值 = #000000

我可以在 Java 中覆盖背景的实际颜色并将 @color/background 设置为 - #FFFFFF 吗?

【问题讨论】:

  • 您的意思是要更改颜色文件中的值?
  • 不,你不能这样做

标签: java android xml android-layout colors


【解决方案1】:

这是可能的,但相当昂贵。 @color/background 等价于 R.color.background,其中 R 是您生成的类。在运行时,您可以use reflection 使字段可写,然后更改它们。我不太相信它会按你的意愿工作。

一个不同的想法是use themes 为您想要的各种颜色,可能让用户switch between them。这将使您的设计和逻辑分开。

【讨论】:

    【解决方案2】:

    您可以使用.setBackgroundColor(getResources().getColor(R.color.myColor)); 在您的Java 代码中设置背景颜色。当在android:background xml 标记中设置它时,这应该会覆盖 xml 背景,至少在我测试过的表行上是这样。

    【讨论】:

      猜你喜欢
      • 2014-02-22
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多