我如何转换一个十六进制的颜色字符串像#b74093在扑动的颜色?

我想在Dart中使用HEX颜色代码。


当前回答

如果你想使用不透明度的颤振十六进制颜色

只使用。Color(0x800F1D41)表示50%,80表示50%。

详情请点击这里

其他回答

简单的方法:

String color = yourHexColor.replaceAll('#', '0xff');

用法:

Container(
    color: Color(int.parse(color)),
)

如果你想使用不透明度的颤振十六进制颜色

只使用。Color(0x800F1D41)表示50%,80表示50%。

详情请点击这里

感谢提问,简单的解决方法如下:

//颜色为十六进制字符串

colorToHexString(Color color) {
  return '#FF${color.value.toRadixString(16).substring(2, 8)}';
}

//十六进制字符串到颜色

hexStringToColor(String hexColor) {
  hexColor = hexColor.toUpperCase().replaceAll("#", "");
  if (hexColor.length == 6) {
    hexColor = "FF" + hexColor;
  }
  return Color(int.parse(hexColor, radix: 16));
}

//如何调用函数

String hexCode = colorToHexString(Colors.green);
Color bgColor = hexStringToColor(hexCode);
print("$hexCode = $bgColor");

享受代码并帮助他人:)

一个不使用类的简单函数:

Color _colorFromHex(String hexColor) {
  final hexCode = hexColor.replaceAll('#', '');
  return Color(int.parse('FF$hexCode', radix: 16));
}

你可以这样使用它:

Color color1 = _colorFromHex("b74093");
Color color2 = _colorFromHex("#b74093");

不需要使用函数。

例如,使用colorcode为容器赋予颜色:

Container
(
    color:Color(0xff000000)
)

这里的0xff是格式后面跟着颜色代码