【问题标题】:CardBackgroundColor remains Grey when I want to set a custom color, whereas default colors works fine当我想设置自定义颜色时,CardBackgroundColor 保持灰色,而默认颜色可以正常工作
【发布时间】:2021-04-01 10:18:04
【问题描述】:

当我想设置自定义颜色时,CardBackgroundColor 保持灰色,而默认颜色可以正常工作。

例如, Card.setCardBackgroundColor(R.color."customcolor") 不设置自定义颜色。颜色是灰色,而 Card.setCardBackgroundColor(Color.RED) 工作正常。

我试过了:

  • 在没有 alpha 的情况下获取颜色
  • 设置为 0dp 高度
  • Card.setCardBackgroundColor(color."customcolor")

没有结果。

编辑:

Card.setCardBackgroundColor(Color.parseColor("#FFFFFFFF")) 有效。但我必须对颜色进行硬编码。有更好的方法吗?

【问题讨论】:

    标签: android kotlin colors card


    【解决方案1】:

    嘿,

    你必须从这样的资源中获取颜色

    Card.setCardBackgroundColor(getResources().getColor(R.color.'your color'));
    

    编辑

    当您从适配器获取上下文时,因此

    Card.setCardBackgroundColor(context.getResources().getColor(R.color.'your color'));
    

    效果很好!!

    【讨论】:

    • 感谢您的回复。但在我的电脑中,无法识别 getResources()。 getResources() 以红色突出显示...我必须在我的配置文件中添加一些内容?
    • 如果你在fragment中使用它,那么getActivity()或者context.'Card.setCardBackgroundColor(getResources().getColor(R.color.'your color'));
    • 我在适配器中使用它。我不明白你的评论。您已经提出了与上面相同的表达式。
    • 太棒了!有用。 :) 非常感谢。我看到 getcolor 已被弃用。这是个问题吗 ?我可以这样离开吗?
    • 它很好,旧的东西总是有效的,把它打勾??
    【解决方案2】:

    Card.setCardBackgroundColor 方法将颜色作为参数而不是颜色资源 ID,因此在您提供 ID 时它会失败。

    所以正确使用颜色资源的方法如下。

     Card.setCardBackgroundColor(ContextCompat.getColor(context, R.color.your_color));
    

    【讨论】:

    • ContextCompat.getColor(context, R.color.your_color) 是一个整数。 ParseColor 想要一个字符串。它不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    相关资源
    最近更新 更多