特殊顏色
特殊顏色方便方法非常好浩聋,比如紅色
Colors.red;
16進制表示的int值
這個有點繞屡拨,不過顏色值用16進制表示確實比RGB或者RGBA要來的方便湃崩。
- 設計圖的顏色切換要改一下惶我,改成AHEX模式
- 代碼中就用下面的方法承耿,前兩位的FF代表透明度
Color(0xFF11BA66);
字符串表示的16進制
- 一般沒有開頭的FF冠骄;就比如“#11BA66”;加上開頭的#加袋,一共7個字符凛辣。這種格式用得很多,后臺返回的字段往往就是這種职烧。設計圖的HEX模式就是這樣的扁誓。
這種模式Flutter沒有對應的顏色構造方法防泵,不得不說非常失敗。
一般可以自己寫一個工具方法蝗敢,把這種模式利用起來捷泞。字符串轉Color對象。有很多種寫法寿谴,感覺下面這種比較好锁右。
Color hexToColor(String s) {
// 如果傳入的十六進制顏色值不符合要求,返回默認值
if (s == null || s.length != 7 || int.tryParse(s.substring(1, 7), radix: 16) == null) {
s = '#999999';
}
return new Color(int.parse(s.substring(1, 7), radix: 16) + 0xFF000000);
}
關于透明度
UI給8為的16進制是最好的讶泰。如果給6為和透明度怎么辦呢咏瑟?這里有人做了一份對應表。
16進制色值前兩位的透明值(不透明度)
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)
“透明度”還是“不透明度”這個要看清楚啊痪署,靈活做一下轉換码泞。實際試驗下來發(fā)現(xiàn)對應的是“藍湖”上的“不透明度”