如何在颤动中将十六进制颜色代码解析为它们各自的整数值

Posted

技术标签:

【中文标题】如何在颤动中将十六进制颜色代码解析为它们各自的整数值【英文标题】:How to parse hex color code into their respective integer value in flutter 【发布时间】:2021-06-29 20:55:25 【问题描述】:

我正在设计一个容器并从存储为字符串的 firebase 数据库中提取颜色代码。现在我想将该字符串(十六进制代码)转换为整数(某些十六进制代码仅包含整数),因为 Color(0XFFf3234f) 仅将参数作为整数。 decoration: BoxDecoration(color:Color(ItemList[index].ColorCode)),,则抛出错误参数类型'String'不能分配给参数类型“int”。 然后我用过:

class HexColor extends Color 

  static int _getColorFromHex(String hexColor) 

    hexColor = hexColor.toUpperCase().replaceAll("#", "");
    if (hexColor.length == 6) 

    
    return int.parse(hexColor, radix: 16);
  

  HexColor(final String hexColor) : super(_getColorFromHex(hexColor));

这对于具有字符串和数字的颜色代码工作正常,但对于仅具有数字的颜色代码它会失败,通过抛出以下错误: 方法 'toUpperCase' 在 null 上被调用。 接收方:空 尝试调用:toUpperCase()

然后我尝试单独分隔数值,但它根本不起作用。

以下是我使用的几个颜色代码: a74556,827255,a3d57a,662482

【问题讨论】:

【参考方案1】:

只需简单地将 ColorCode 转换为 int:

Color(int.parse('0xff$ItemList[index].ColorCode'))

【讨论】:

以上是关于如何在颤动中将十六进制颜色代码解析为它们各自的整数值的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中将状态栏图标颜色更改为白色

如何将十六进制颜色字符串解析为整数

如何在颤动中将状态栏图标和文本颜色更改为黑色?

如何在 C++ 中将 RGB 颜色值转换为十六进制值?

在 Python 中将十六进制颜色代码转换为颜色名称

在 JavaScript 中将整数转换为十六进制字符串