flutter开发实战-颜色Color与16进制转换

flutter开发实战-颜色Color与16进制转换

一、颜色Color与16进制转换

代码如下

dart 复制代码
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

二、小结

flutter开发实战-颜色Color与16进制转换。

学习记录,每天不停进步。

相关推荐
子榆.3 小时前
Flutter 与开源鸿蒙(OpenHarmony)深度集成实战:从零构建跨平台应用
flutter·开源·harmonyos
恋猫de小郭3 小时前
Flutter UI 设计库解耦重构进度,官方解答未来如何适配
android·前端·flutter
程序员大辉5 小时前
新人学习Flutter,如何搭建开发环境(附所有安装包)
学习·flutter
子榆.6 小时前
Flutter 与开源鸿蒙(OpenHarmony)性能调优实战:从启动速度到帧率优化的全链路指南
flutter·开源·harmonyos
子榆.6 小时前
Flutter 与开源鸿蒙(OpenHarmony)安全加固实战:防逆向、防调试、数据加密全攻略
flutter·开源·harmonyos
子榆.6 小时前
Flutter 与开源鸿蒙(OpenHarmony)深度集成实战(二):实现跨设备分布式数据同步
flutter·开源·harmonyos
子榆.7 小时前
Flutter 与开源鸿蒙(OpenHarmony)上架华为应用市场全流程指南:从合规检测到审核通过
flutter·华为·开源
恋猫de小郭7 小时前
八年开源,GSY 用五种技术开发了同一个 Github 客户端,这次轮到 AI + Compose
android·前端·flutter
梧桐ty17 小时前
解耦之道:鸿蒙+Flutter混合工程的微内核架构与模块化实战
flutter·华为·harmonyos
名字被你们想完了20 小时前
Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(六)
flutter