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

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


当前回答

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

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

其他回答

你可以用这个

Color getColorFromColorCode(String code){
  return Color(int.parse(code.substring(1, 7), radix: 16) + 0xFF000000);
}

使用hexcolor将十六进制颜色带入Dart hexcolorPlugin:

hexcolor: ^2.0.3

示例使用

import 'package:hexcolor/hexcolor.dart';
Container(
    decoration: new BoxDecoration(
        color: Hexcolor('#34cc89'),
    ),
    child: Center(
        child: Text(
            'Running on: $_platformVersion\n',
            style: TextStyle(color: Hexcolor("#f2f2f2")),
        ),
    ),
),
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')

你可以点击Color Widget,它会告诉你更深入的信息,这些字母代表什么。

你也可以使用Color.fromARGB()方法来创建自定义颜色,这对我来说更容易。使用Flutter Doctor颜色选择器网站为您的Flutter应用程序选择任何颜色。

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

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