我如何转换一个十六进制的颜色字符串像#b74093在扑动的颜色?
我想在Dart中使用HEX颜色代码。
我如何转换一个十六进制的颜色字符串像#b74093在扑动的颜色?
我想在Dart中使用HEX颜色代码。
当前回答
简单的方法:
String color = yourHexColor.replaceAll('#', '0xff');
用法:
Container(
color: Color(int.parse(color)),
)
其他回答
一个不使用类的简单函数:
Color _colorFromHex(String hexColor) {
final hexCode = hexColor.replaceAll('#', '');
return Color(int.parse('FF$hexCode', radix: 16));
}
你可以这样使用它:
Color color1 = _colorFromHex("b74093");
Color color2 = _colorFromHex("#b74093");
在Flutter中,要从带alpha的RGB创建颜色,请使用:
return new Container(
color: new Color.fromRGBO(0, 0, 0, 0.5),
);
如何使用十六进制颜色:
return new Container(
color: new Color(0xFF4286f4),
);
// 0xFF -> the opacity (FF for opaque)
// 4286f4 -> the hexadecimal color
不透明的十六进制颜色:
return new Container(
color: new Color(0xFF4286f4).withOpacity(0.5),
);
//或改变“FF”值
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00
要了解更多信息,请参阅官方文档页,Color类- dart:ui库- dart API。
不需要使用函数。
例如,使用colorcode为容器赋予颜色:
Container
(
color:Color(0xff000000)
)
这里的0xff是格式后面跟着颜色代码
供一般参考。有一种更简单的方法,使用supercharge图书馆。虽然您可以对所有提到的解决方案使用扩展方法,但您可以找到实用的用户库工具包。
"#ff00ff".toColor(); // Painless hex to color
"red".toColor(); // Supports all web color names
容易,对吧?
增压
//调用这一行来设置颜色 颜色: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));
}