Flutter十六进制颜色转换成颜色对象

Flutter中颜色的设置有很多方法,但是一般我使用的有4种
1、Color c1 = Color(0xFF3CAAFA);
2、Color c2 = Color.fromRGBO(60, 170, 250, 1);
3、Color c3 = Color.fromARGB(255, 60, 170, 250);
4、Color c5 = Colors.blue;

但是UI给我们的颜色值是:#808080 ,上面的方法就没有办法使用,所以写一个转换的方法

import 'dart:ui' show Color;


class ColorsUtil {
  /// 十六进制颜色,
  /// hex, 十六进制值,例如:0xffffff,
  /// alpha, 透明度 [0.0,1.0]

  static Color hexToColor(String s) {
    // 如果传入的十六进制颜色值不符合要求,返回默认值
    if (s == null || s.length != 7 ||
        int.tryParse(s.substring(1, 7), radix: 16) == null) {
      s = '#999999';
    }

    return new Color(int.parse(s.substring(1, 7), radix: 16) + 0xFF000000);
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容