记录常用颜色透明度(0%-100%)对应表格 依据透明度int值,自动获取对应的16进制值,增加对String扩展
///增加String扩展
extension ToColor on String {
Color toColor({int a = 100}) {
return ColorUtils.toColor(this, a: a);
}
}
// 100% : FF 75% : BF 50% : 80 25% : 40
// 99% : FC 74% : BD 49% : 7D 24% : 3D
// 98% : FA 73% : BA 48% : 7A 23% : 3B
// 97% : F7 72% : B8 47% : 78 22% : 38
// 96% : F5 71% : B5 46% : 75 21% : 36
// 95% : F2 70% : B3 45% : 73 20% : 33
// 94% : F0 69% : B0 44% : 70 19% : 30
// 93% : ED 68% : AD 43% : 6E 18% : 2E
// 92% : EB 67% : AB 42% : 6B 17% : 2B
// 91% : E8 66% : A8 41% : 69 16% : 29
// 90% : E6 65% : A6 40% : 66 15% : 26
// 89% : E3 64% : A3 39% : 63 14% : 24
// 88% : E0 63% : A1 38% : 61 13% : 21
// 87% : DE 62% : 9E 37% : 5E 12% : 1F
// 86% : DB 61% : 9C 36% : 5C 11% : 1C
// 85% : D9 60% : 99 35% : 59 10% : 1A
// 84% : D6 59% : 96 34% : 57 9% : 17
// 83% : D4 58% : 94 33% : 54 8% : 14
// 82% : D1 57% : 91 32% : 52 7% : 12
// 81% : CF 56% : 8F 31% : 4F 6% : 0F
// 80% : CC 55% : 8C 30% : 4D 5% : 0D
// 79% : C9 54% : 8A 29% : 4A 4% : 0A
// 78% : C7 53% : 87 28% : 47 3% : 08
// 77% : C4 52% : 85 27% : 45 2% : 05
// 76% : C2 51% : 82 26% : 42 1% : 03
// 0% : 00
static Color toColor(String color, {int a = 100}) {
if (color.isEmpty || !color.startsWith("#")) {
throw Exception("color异常数据");
}
if (a < 0 || a > 100) {
throw Exception("透明度必须在0-100之间");
}
var hexColor = color.replaceAll("#", "").trim();
if (hexColor.length == 6) {
hexColor = "0x${_percentageConvertString[a]}$hexColor";
var color = Color(int.parse(hexColor));
return color;
} else {
throw Exception("color长度必须为6位");
}
}
static final Map<int, String> _percentageConvertString = {
0: "00",
1: "03",
2: "05",
3: "08",
4: "0A",
5: "0D",
6: "0F",
7: "12",
8: "14",
9: "17",
10: "1A",
11: "1C",
12: "1F",
13: "21",
14: "24",
15: "26",
16: "29",
17: "2B",
18: "2E",
19: "30",
20: "33",
21: "36",
22: "38",
23: "3B",
24: "3D",
25: "40",
26: "42",
27: "45",
28: "47",
29: "4A",
30: "4D",
31: "4F",
32: "52",
33: "54",
34: "57",
35: "59",
36: "5C",
37: "5E",
38: "61",
39: "63",
40: "66",
41: "69",
42: "6B",
43: "6E",
44: "70",
45: "73",
46: "75",
47: "78",
48: "7A",
49: "7D",
50: "80",
51: "82",
52: "85",
53: "87",
54: "8A",
55: "8C",
56: "8F",
57: "91",
58: "94",
59: "96",
60: "99",
61: "9C",
62: "9E",
63: "A1",
64: "A3",
65: "A6",
66: "A8",
67: "AB",
68: "AD",
69: "B0",
70: "B3",
71: "B5",
72: "B8",
73: "BA",
74: "BD",
75: "BF",
76: "C2",
77: "C4",
78: "C7",
79: "C9",
80: "CC",
81: "CF",
82: "D1",
83: "D4",
84: "D6",
85: "D9",
86: "DB",
87: "DE",
88: "E0",
89: "E3",
90: "E6",
91: "E8",
92: "EB",
93: "ED",
94: "F0",
95: "F2",
96: "F5",
97: "F7",
98: "FA",
99: "FC",
100: "FF"
};
`