【问题标题】:How to set color using attr.xml?如何使用 attr.xml 设置颜色?
【发布时间】:2021-12-06 00:27:14
【问题描述】:

我想这样做:

textView.setTextColor(R.attr.myColor)

这是因为我为夜间模式和灯光模式创建了自定义颜色

attr.xml
<resources>
    <attr name="myColor" format="reference|color" />

themes.xml
      <item name="textMessageColor">@color/black</item>

themes-night.xml
  <item name="textMessageColor">@color/white</item>

但每次我用它,它都不起作用。

【问题讨论】:

  • 你的错误是这个 java.lang.UnsupportedOperationException: Cant convert to color: type=0x2 right..?
  • stackoverflow.com/questions/17700862/… 检查此链接。这可能会有所帮助。
  • @BADSHAH 谢谢,但我没有收到这样的错误。 Chandan kushwaha 谢谢我会试试你的建议
  • 好的,没问题的兄弟

标签: java android xml


【解决方案1】:

在xml中试试这个
&lt;TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="?myColor"/&gt;

【讨论】:

  • 谢谢,但我需要它在 java 中作为 ui 组件
  • 对于 UI 组件,您可以使用 textView.setTextColor(getThemeAttrColor(YourActivity.this, R.attr.myColor));
【解决方案2】:

您可以覆盖您在布局中使用的颜色并将它们放入values-night/colors.xml。因此,在浅色主题中将使用values/colors.xml,在夜间主题中将使用values-night/colors.xml

假设你有一个颜色分配给一个按钮,你写下面这行,确保颜色名称是一样的:

值/colors.xml

<color name="colorButton">#6d85c9</color>

values-night/colors.xml

<color name="colorButton">@color/colorWhite</color>

然后您可以将颜色分配给您通常执行的按钮。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多