![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSdGdlYsJ1MihGbHFmek1mY2x2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0UjN5ADOxATM1ETNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
使用16進制表示顔色是較為主流的方式, 那麼在本篇文章中将簡單講講如何在Flutter中使用16進制顔色.
方法一: 使用原生方法
Flutter中,
Color
類僅接收整數作為參數. 你也可以使用
fromARGB
或者
fromRGBO
.
比如拿到了一個16進制顔色
#b74093
. 因為
Color
還需要傳入透明度,
255
就是最大值(也就是不透明), 轉為16進制就是
0xFF
, 是以我們隻需這樣表示:
正規一點的寫法(可選, 因為大小寫不敏感):
方法二: 接收字元串格式, 轉為Color
建立一個
HexColor
類:
class HexColor extends Color {
static int _getColorFromHex(String hexColor) {
hexColor = hexColor.toUpperCase().replaceAll("#", "");
if (hexColor.length == 6) {
hexColor = "FF" + hexColor;
}
return int.parse(hexColor, radix: 16);
}
HexColor(final String hexColor) : super(_getColorFromHex(hexColor));
}
然後進行調用:
Color color1 = HexColor("b74093");
Color color2 = HexColor("#b74093");
Color color3 = HexColor("#88b74093");
感謝
- How do I use hexadecimal color strings in Flutter? - Stack Overflow
- Pexels 上的 icon0.com 拍攝的照片
結語
如果你對本篇文章有任何問題, 歡迎在下方評論區, 進行讨論, 或加入阿航的技術小站QQ交流群
原文連結
歡迎通路阿航的技術小站官網, 擷取更多技術幹貨!