我如何转换一个十六进制的颜色字符串像#b74093在扑动的颜色?
我想在Dart中使用HEX颜色代码。
我如何转换一个十六进制的颜色字符串像#b74093在扑动的颜色?
我想在Dart中使用HEX颜色代码。
当前回答
如果你迫切需要一个十六进制的颜色在你的应用程序,有一个简单的步骤,你可以遵循:
从这里简单地将您的十六进制颜色转换为RGB格式。 获取RGB值。 在Flutter中,您有一个简单的选项来使用RGB颜色: Color.fromRGBO(r_value, g_value, b_value,不透明度)将为您做这项工作。 继续调整O_value以获得您想要的颜色。
其他回答
可以使用from_css_color包从十六进制字符串中获取Color。它支持三位和六位RGB十六进制表示法。
Color color = fromCSSColor('#ff00aa')
为了优化起见,为每种颜色创建一个Color实例,并将其存储在某个地方以供以后使用。
由于Color构造函数不支持十六进制字符串,所以我们应该寻找其他替代方法。
有几种可能性:
1-第一个是创建一个小函数,允许您将颜色十六进制字符串转换为颜色对象。
代码:
Color colorFromHex(String hexColor) {
final hexCode = hexColor.replaceAll('#', '');
if (hexColor.length == 6) {
hexColor = 'FF' + hexColor; // FF as the opacity value if you don't add it.
}
return Color(int.parse('FF$hexCode', radix: 16));
}
用法:
Container(
color: colorFromHex('abcdff'),
child: Text(
'Never stop learning',
style: TextStyle(color: colorFromHex('bbffffcc')),
),
)
2-第二种可能是使用增压包。supercharge为所有Flutter开发人员带来了Kotlin等语言的所有舒适特性。
添加附加依赖:^1.X。X(找到最新版本)到你的项目,并开始在所有地方使用supercharge:
import 'package:supercharged/supercharged.dart';
现在,将任何字符串转换为颜色
代码:
"#ff00ff".toColor(); // Painless hex to color
"red".toColor(); // Supports all web color names
你也可以使用六色包装,这也是很棒的。
如何在扑动中使用十六进制颜色代码#B74093
只需从十六进制颜色代码中删除#符号,并在color类中添加带有颜色代码的0xFF:
#b74093将在Flutter中变为Color(0xffb74093)
#B74093将在Flutter中变为Color(0xFFB74093)
ff或ff in Color(0xFFB74093)定义不透明度。
十六进制颜色的例子,所有不透明度类型在达特
你可以点击Color Widget,它会告诉你更深入的信息,这些字母代表什么。
你也可以使用Color.fromARGB()方法来创建自定义颜色,这对我来说更容易。使用Flutter Doctor颜色选择器网站为您的Flutter应用程序选择任何颜色。
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')