flutter开发实战-颜色Color与16进制转换
一、颜色Color与16进制转换
代码如下
import 'dart:ui';
class ColorUtil {
/// 十六进制颜色,
/// hex, 十六进制值,例如:0xffffff,
/// alpha, 透明度 [0.0,1.0]
static Color hexColor(int hex, {double alpha = 1}) {
if (alpha < 0) {
alpha = 0;
} else if (alpha > 1) {
alpha = 1;
}
return Color.fromRGBO((hex & 0xFF0000) >> 16, (hex & 0x00FF00) >> 8,
(hex & 0x0000FF) >> 0, alpha);
}
/// 十六进制颜色字符串,
/// hex, 十六进制值,例如:0xffffff,
/// alpha, 透明度 [0.0,1.0]
static Color hexColorString(String hexColor) {
Color color = Color(ColorUtil.getColorFromHex(hexColor));
return color;
}
static int getColorFromHex(String hexColor) {
if (hexColor.startsWith("#")) {
hexColor = hexColor.toUpperCase().replaceAll("#", "");
} else {
hexColor = hexColor.toUpperCase();
}
if (hexColor.length == 6) {
hexColor = "FF" + hexColor;
}
return int.parse(hexColor, radix: 16);
}
/// 颜色检测只保存 #RRGGBB格式 FF透明度
/// [color] 格式可能是材料风/十六进制/string字符串
/// 返回[String] #rrggbb 字符串
static String? color2HEX(Color color) {
// 0xFFFFFFFF
//将十进制转换成为16进制 返回字符串但是没有0x开头
String temp = color.value.toRadixString(16);
if (temp.isNotEmpty) {
if (temp.length == 8) {
String hexColor = "#" + temp;
return hexColor.toLowerCase();
} else {
String hexColor = "#" + temp;
return hexColor.toLowerCase();
}
}
return null;
}
}
https://blog.csdn.net/gloryFlow/article/details/132219192文章来源:https://www.toymoban.com/news/detail-647665.html
二、小结
flutter开发实战-颜色Color与16进制转换。
学习记录,每天不停进步。文章来源地址https://www.toymoban.com/news/detail-647665.html
到了这里,关于flutter开发实战-颜色Color与16进制转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!