Q:
我如何在Flutter中把像
"#b74093"
这样的十六进制颜色字符串转换为Color
?我想在Dart中使用HEX颜色码。
A1:
在Flutter中,Color类只接受整数作为参数,也可以使用命名构造函数fromARGB
和fromRGBO
。
因此我们只需要将字符串#b74093
转换为一个整数值。另外,不透明度总是需要被指定的。
十进制255的不透明度用十六进制值FF表示。这让我们得到了0xFF
。现在,我们只需要像这样附加我们的颜色字符串:
const color = const Color(0xffb74093);
可以选择是否将字母大写:
const color = const Color(0xFFB74093);
从Dart 2.6.0开始,你可以为Color类创建一个扩展,可以让你使用十六进制颜色字符串来创建一个Color对象:
extension HexColor on Color {
/// 字符串的格式为 "aabbcc "或 "faabbcc",并有一个可选的前置 "#"
static Color fromHex(String hexString) {
final b