parseHexColor static method
- String? hex
Parses #rgb, #rrggbb or #rrggbbaa.
Implementation
static Color? parseHexColor(String? hex) {
if (hex == null) return null;
var h = hex.trim();
if (h.startsWith('#')) h = h.substring(1);
if (h.length == 3) h = h.split('').map((c) => '$c$c').join();
if (h.length == 6) h = 'FF$h';
if (h.length == 8) {
// Input is rrggbbaa; ARGB wants aarrggbb.
final v = int.tryParse(h, radix: 16);
if (v == null) return null;
if (hex.trim().replaceFirst('#', '').length == 8) {
final rgb = (v >> 8) & 0xFFFFFF;
final a = v & 0xFF;
return Color((a << 24) | rgb);
}
return Color(v);
}
return null;
}