我如何转换一个十六进制的颜色字符串像#b74093在扑动的颜色?
我想在Dart中使用HEX颜色代码。
我如何转换一个十六进制的颜色字符串像#b74093在扑动的颜色?
我想在Dart中使用HEX颜色代码。
当前回答
在fromRGB构造函数中使用十六进制数:
Color.fromRGBO(0xb7, 0x40, 0x93, 1),
其他回答
感谢提问,简单的解决方法如下:
//颜色为十六进制字符串
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");
享受代码并帮助他人:)
//调用这一行来设置颜色 颜色:HexColor (HexColor.Primarycolor)
我已经创建了一个类HexColor和玷污所有的颜色在这个类。这是100%工作的代码
class HexColor extends Color {
static int _getColorFromHex(String hexColor) {
hexColor = hexColor.toUpperCase().replaceAll("#", "");
if (hexColor.length == 6) {
hexColor = "FF" + hexColor;
}
return int.parse(hexColor, radix: 16);
}
static var Primarycolor="FF3E3F";
static var Accentcolor="b74093";
static var white="b74093";
static var black="b74093";
HexColor(final String hexColor) : super(_getColorFromHex(hexColor));
}
文件utils.dart
///
/// Convert a color hex-string to a Color object.
///
Color getColorFromHex(String hexColor) {
hexColor = hexColor.toUpperCase().replaceAll('#', '');
if (hexColor.length == 6) {
hexColor = 'FF' + hexColor;
}
return Color(int.parse(hexColor, radix: 16));
}
示例使用
Text(
'Hello, World!',
style: TextStyle(
color: getColorFromHex('#aabbcc'),
fontWeight: FontWeight.bold,
)
)
Color类需要一个ARGB整数。由于您尝试将它与RGB值一起使用,请将其表示为int并以0xff作为前缀。
Color mainColor = Color(0xffb74093);
如果您对此感到厌烦,并且仍然希望使用字符串,您可以扩展Color并添加一个字符串构造函数
class HexColor extends Color {
static int _getColorFromHex(String hexColor) {
hexColor = hexColor.toUpperCase().replaceAll("#", "");
if (hexColor.length == 6) {
hexColor = "FF" + hexColor;
}
return int.parse(hexColor, radix: 16);
}
HexColor(final String hexColor) : super(_getColorFromHex(hexColor));
}
使用
Color color1 = HexColor("b74093");
Color color2 = HexColor("#b74093");
Color color3 = HexColor("#88b74093"); // If you wish to use ARGB format
在fromRGB构造函数中使用十六进制数:
Color.fromRGBO(0xb7, 0x40, 0x93, 1),