tryParseColor static method

Color? tryParseColor(
  1. String colorString
)

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;
}