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

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


当前回答

最好的方法是使用来自pub.dev的flutter十六进制颜色插件 然后导入包。

import 'package:hexcolor/hexcolor.dart';

然后把它用在这种特殊的方式上。

Text( 
     'Running on: $_platformVersion\n',
      style: TextStyle(color: HexColor("#f2f2f2")),
    ),
Text(
      "Hex From Material  $textColor",
       style: TextStyle(color: ColorToHex(Colors.teal)),
    ),

这里的特殊插件。

其他回答

简单的方法:

String color = yourHexColor.replaceAll('#', '0xff');

用法:

Container(
    color: Color(int.parse(color)),
)

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

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

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

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

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

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

文件utils.dart

///
/// Convert a color hex-string to a Color object.
///
Color getColorFromHex(String hexColor) {
  hexColor = hexColor.toUpperCase().replaceAll('#', '');

  if (hexColor.length == 6) {
    hexColor = 'FF' + hexColor;
  }

  return Color(int.parse(hexColor, radix: 16));
}

示例使用

Text(
  'Hello, World!',
  style: TextStyle(
    color: getColorFromHex('#aabbcc'),
    fontWeight: FontWeight.bold,
  )
)

如果你迫切需要一个十六进制的颜色在你的应用程序,有一个简单的步骤,你可以遵循:

从这里简单地将您的十六进制颜色转换为RGB格式。 获取RGB值。 在Flutter中,您有一个简单的选项来使用RGB颜色: Color.fromRGBO(r_value, g_value, b_value,不透明度)将为您做这项工作。 继续调整O_value以获得您想要的颜色。

可以使用from_css_color包从十六进制字符串中获取Color。它支持三位和六位RGB十六进制表示法。

Color color = fromCSSColor('#ff00aa')

为了优化起见,为每种颜色创建一个Color实例,并将其存储在某个地方以供以后使用。