使用:
// 使用Color的靜態方法 fromARGB() 來創建顏色對象。透明度為 255(完全不透明)
Color a = Color.fromARGB(255, 42, 35, 72);
// 使用八位的十六進制數來表示顏色,其中前兩位表示透明度,后六位表示紅色、綠色和藍色通道的值。0xFF 表示完全不透明
Color b = Color(0xFF282344);// 使用自定義的HexColor類,它可以從十六進制字符串中創建顏色對象。為6位時默認不透明,為8位時FF表示不透明。
Color c = HexColor.fromHex("#282344");
Color d = HexColor.fromHex('#FF282344');// 顏色轉為十六進制字符串
String aHex6 = a.toHex6();?
String aHex8 = a.toHex8();? String cHex61 = c.toHex6();?
String cHex81 = c.toHex8();?
拓展:
import 'package:flutter/material.dart';extension ColorUtils on Color {// 轉換Color對象為8位16進制字符串String toHex8({bool leadingHashSign = true}) => '${leadingHashSign ? '#' : ''}''${alpha.toRadixString(16).padLeft(2, '0')}''${red.toRadixString(16).padLeft(2, '0')}''${green.toRadixString(16).padLeft(2, '0')}''${blue.toRadixString(16).padLeft(2, '0')}';// 轉換Color對象為6位16進制字符串String toHex6({bool leadingHashSign = true}) => '${leadingHashSign ? '#' : ''}''${red.toRadixString(16).padLeft(2, '0')}''${green.toRadixString(16).padLeft(2, '0')}''${blue.toRadixString(16).padLeft(2, '0')}';
}class HexColor {// 解析16進制字符串為Color對象static Color fromHex(String hexString) {String hex = hexString.replaceAll('#', '');if (hex.length == 6) {hex = 'FF' + hex; // 默認透明度為1(FF)} else if (hex.length == 3) {hex = 'FF' + hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]; // 簡寫形式}return Color(int.parse(hex, radix: 16));}
}