tryParseColor static method
Implementation
static Color? tryParseColor(String colorString) {
if (colorString.isEmpty) return null;
// 解析16进制格式的色值 0xffffff
if (colorString.contains(RegExp(r'#|0x'))) {
String hexColor = colorString.replaceAll(RegExp(r'#|0x'), '');
if (hexColor.length == 6) hexColor = 'ff$hexColor';
final result = int.tryParse(hexColor, radix: 16);
if (result == null) return null;
return Color(result);
}
// 解析rgb格式的色值 rgb(0,0,0)
if (colorString.toLowerCase().contains(RegExp(r'rgb(.*)'))) {
String valuesString = colorString.substring(4, colorString.length - 1);
List<String> values = valuesString.split(',');
if (values.length != 3) return null;
final red = int.tryParse(values[0].trim());
final green = int.tryParse(values[1].trim());
final blue = int.tryParse(values[2].trim());
if (red == null || green == null || blue == null) return null;
return Color.fromARGB(255, red, green, blue);
}
return null;
}