我如何转换一个十六进制的颜色字符串像#b74093在扑动的颜色?

我想在Dart中使用HEX颜色代码。


当前回答

如何在扑动中使用十六进制颜色代码#B74093

只需从十六进制颜色代码中删除#符号,并在color类中添加带有颜色代码的0xFF:

#b74093将在Flutter中变为Color(0xffb74093)

#B74093将在Flutter中变为Color(0xFFB74093)

ff或ff in Color(0xFFB74093)定义不透明度。

十六进制颜色的例子,所有不透明度类型在达特

其他回答

这就是我的解决方案:

String hexString = "45a3df";
Color(int.parse("0xff${hexString}"));

这是唯一不需要额外步骤的方法。

我使用这个material_color_gen包,它的工作就像一个魅力

material_color_gen: ^2.0.0

使用:

import 'package:material_color_gen/material_color_gen.dart';
primarySwatch: Color(0xFFFF0000).toMaterialColor()

这是一个HexColor的例子:#ff0000 使用0xFF更改#的结果是:0xFFFF0000

官方链接: https://pub.dev/packages/material_color_gen

还有另一种解决方案。如果您将颜色存储为普通的十六进制字符串,并且不想为其添加不透明度(前导“FF”):

将十六进制字符串转换为int 要将十六进制字符串转换为整数,请执行以下操作之一: var myInt = int。解析(hexString,基数:16); 或 var myInt = int.parse("0x$hexString"); 作为0x(或-0x)的前缀将使int。将默认值解析为基数16。 通过代码添加不透明度到你的颜色 Color = new Color(myInt).withOpacity(1.0);

在fromRGB构造函数中使用十六进制数:

Color.fromRGBO(0xb7, 0x40, 0x93, 1),
import 'package:flutter/material.dart';
class HexToColor extends Color{
  static _hexToColor(String code) {
    return int.parse(code.substring(1, 7), radix: 16) + 0xFF000000;
  }
  HexToColor(final String code) : super(_hexToColor(code));
}

导入新类并像这样使用它:

HexToColor('#F2A03D')