我们的数据库将颜色保存为String
,如#34;#AABBCC"所以我基本上都在寻找这样的函数:Color.parseColor("#AABBCC");
用于Flutter
Color类需要Color(0xFF42A5F5)
之类的内容,因此我需要将"#AABBCC"
转换为0xFFAABBCC
答案 0 :(得分:12)
/// Construct a color from a hex code string, of the format #RRGGBB.
Color hexToColor(String code) {
return new Color(int.parse(code.substring(1, 7), radix: 16) + 0xFF000000);
}
答案 1 :(得分:1)
简单的字符串替换将使用正确的语法:
String html_colour = '#AAABBCC';
String fixed_colour = html_colour.replace(new RegExp(r'#'), '0xFF');
应该这样做。
答案 2 :(得分:1)
我最终这样做了:
hexStringToHexInt(String hex) {
hex = hex.replaceFirst('#', '');
hex = hex.length == 6 ? 'ff' + hex : hex;
int val = int.parse(hex, radix: 16);
return val;
}
答案 3 :(得分:1)
我在项目中使用了此功能,该功能可以将十六进制字符串转换为颜色。
Color hexToColor(String hexString, {String alphaChannel = 'FF'}) {
return Color(int.parse(hexString.replaceFirst('#', '0x$alphaChannel')));
}
这里的想法是,现在您可以传递此函数的十六进制字符串,除了传递Alpha通道外,还类似于“ #ffffff”。 Alpha通道的作用是处理颜色的不透明度,您可以将其直接传递给Color。
关于alpha通道,FF部分是0-100的十六进制表示,就像:
0 = 00 1 = 03 2 = 05 ... 9 = 17 ... 10 = 1A 11 = 1摄氏度 12 = 1楼 ... 99 = FC 100 = FF
让我们假设您要将#000000转换为Color并具有0.1的不透明度。 您可以像这样简单地调用此函数:
hexToColor('#000000', alphaChannel: '1A');
如果您这样称呼它:
hexToColor('#000000');
然后,它只会返回不透明度为1的黑色。希望这对想知道如何进一步处理不透明度和颜色处理的人有所帮助。
答案 4 :(得分:1)
1-安装Hexcolor
插件
dependencies:
flutter:
sdk: flutter
hexcolor: ^1.0.4
2-将插件导入您的班级
import 'package:hexcolor/hexcolor.dart';
现在使用像这样的插件
Container(
color: Hexcolor("#0EBB64"),
child: Center(child: Image.asset("images/marker.png",width: 100,height: 100,),),
)