【问题标题】:Is there a way to set chip background colors randomly, programmatically?有没有办法以编程方式随机设置芯片背景颜色?
【发布时间】:2020-11-18 20:19:17
【问题描述】:

我一直在搞乱我的应用程序中芯片组中芯片的颜色,并一直在尝试设置背景颜色。我想让每个芯片在放入芯片组之前从一个范围内随机选择颜色,但不知道该怎么做。

我有一个随机生成的rgb颜色没问题,但我不知道如何设置芯片的颜色。通常,看起来您使用setChipBackroundColor(ColorStateList) 设置芯片的背景颜色,但ColorStateList 似乎特别想要颜色的资源ID...

对我可以在这里做什么有什么想法吗?

【问题讨论】:

    标签: android colors background


    【解决方案1】:

    您需要在setChipBackgroundColor() 函数中使用ColorStateList.valueOf()。这是一个示例代码。

    Chip chip = findViewById(R.id.chip);
    
    Random rnd = new Random();
    
    int color = Color.rgb(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
    
    chip.setChipBackgroundColor(ColorStateList.valueOf(color));
    

    【讨论】:

    • 谢谢你解决了这个问题!我没有意识到赋予 valueof 的 int 值实际上是存储在 int 中的整个颜色。
    • @A.Snarr 欢迎您!颜色由红色、绿色和蓝色分量表示为 RedRedGreenGreenBlueBlue 形式的十六进制数(如 180CFF)。像 Java 这样的编程语言可以将其用作整数值,因为可以转换十六进制数字,供您参考。
    猜你喜欢
    • 2019-04-22
    • 2013-08-25
    • 2021-10-18
    • 1970-01-01
    • 2011-08-14
    • 2014-06-24
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    相关资源
    最近更新 更多