正文:
在Flutter中,我们可以使用16 进制的Hex 颜色值来设置颜色。通过使用 Hex 颜色值,我们可以更方便地定义和使用自定义的颜色。
要使用 Hex 颜色值,我们需要在颜色值前面加上”0xFF”前缀,然后跟上 6 位的 Hex 值。每两位代表红、绿、蓝三个颜色通道的值。例如,”#FF0000″代表红色,”#00FF00″代表绿色,”#0000FF”代表蓝色。
在 Flutter 中,我们可以使用 Color 类的 fromARGB 方法来创建 Hex 颜色值对应的颜色对象。例如,Color(0xFFFF0000)代表红色,Color(0xFF00FF00)代表绿色,Color(0xFF0000FF)代表蓝色。
使用 Hex 颜色值可以使我们的代码更加简洁和易读。同时,它也提供了更多的颜色选择,让我们能够更好地满足设计需求。
总结起来,Flutter 中使用 16 进制 Hex 颜色值是一种方便、灵活且强大的方式来定义和使用颜色。
为 Color 类创建一个扩展
// https://www.huizhanii.com
extension HexColor on Color {
/// String is in the format "aabbcc" or "ffaabbcc" with an optional leading "#".
static Color fromHex(String hexString) {
final buffer = StringBuffer();
if (hexString.length == 6 || hexString.length == 7) buffer.write('ff');
buffer.write(hexString.replaceFirst('#', ''));
return Color(int.parse(buffer.toString(), radix: 16));
}
/// Prefixes a hash sign if [leadingHashSign] is set to `true` (default is `true`).
String toHex({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')}';
}
使用
// https://www.huizhanii.com
final Color color = HexColor.fromHex('#aabbcc');
print(color.toHex());
print(const Color(0xffaabbcc).toHex());
另一个构造函数
// https://www.huizhanii.com
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));
}
使用
// https://www.huizhanii.com
Color color1 = HexColor("b74093");
Color color2 = HexColor("#b74093");
Color color3 = HexColor("#88b74093"); // If you wish to use ARGB format
转载请注明:汇站网 » 使用 16 进制的 Hex 颜色值来设置颜色 通过使用 Hex 颜色值