正文:
在
Flutter
中,我们可以使用16 进制的Hex
颜色值来设置颜色。通过使用Hex
颜色值,我们可以更方便地定义和使用自定义的颜色。要使用
Hex
颜色值,我们需要在颜色值前面加上”0xFF”前缀,然后跟上 6 位的Hex
值。每两位代表红、绿、蓝三个颜色通道的值。例如,”#FF0000
″代表红色,”#00FF00″代表绿色,”#0000FF”代表蓝色。在
Flutter
中,我们可以使用Color
类的fromARGB
方法来创建Hex
颜色值对应的颜色对象。例如,Color
(0xFFFF0000)代表红色,Color
(0xFF00FF00)代表绿色,Color
(0xFF0000FF)代表蓝色。使用
Hex
颜色值可以使我们的代码更加简洁和易读。同时,它也提供了更多的颜色选择,让我们能够更好地满足设计需求。总结起来,
Flutter
中使用 16 进制Hex
颜色值是一种方便、灵活且强大的方式来定义和使用颜色。
为 Color
类创建一个扩展
// https
://www
.huizhanii
.com
extension
HexColor
on
Color
{
/// String
is
in
the
format
"aabbcc
" or
"ffaabbcc
" with
an
optional
leading
"#".
static
Color
fromHex
(String
hexString
) {
final
buffer
= StringBuffer
();
if
(hexString
.length
== 6 || hexString
.length
== 7) buffer
.write
('ff
');
buffer
.write
(hexString
.replaceFirst
('#', ''));
return
Color
(int
.parse
(buffer
.toString
(), radix
: 16));
}
/// Prefixes
a
hash
sign
if
[leadingHashSign
] is
set
to
`true
` (default
is
`true
`).
String
toHex
({bool
leadingHashSign
= true
}) => '${leadingHashSign
? '#' : ''}'
'${alpha
.toRadixString
(16).padLeft
(2, '0')}'
'${red
.toRadixString
(16).padLeft
(2, '0')}'
'${green
.toRadixString
(16).padLeft
(2, '0')}'
'${blue
.toRadixString
(16).padLeft
(2, '0')}';
}
使用
// https
://www
.huizhanii
.com
final
Color
color
= HexColor
.fromHex
('#aabbcc
');
print
(color
.toHex
());
print
(const
Color
(0xffaabbcc).toHex
());
另一个构造函数
// https
://www
.huizhanii
.com
class
HexColor
extends
Color
{
static
int
_getColorFromHex
(String
hexColor
) {
hexColor
= hexColor
.toUpperCase
().replaceAll
("#", "");
if
(hexColor
.length
== 6) {
hexColor
= "FF
" + hexColor
;
}
return
int
.parse
(hexColor
, radix
: 16);
}
HexColor
(final
String
hexColor
) : super
(_getColorFromHex
(hexColor
));
}
使用
// https
://www
.huizhanii
.com
Color
color1
= HexColor
("b74093
");
Color
color2
= HexColor
("#b74093
");
Color
color3
= HexColor
("#88b74093"); // If
you
wish
to
use
ARGB
format
转载请注明:汇站网 » 使用 16 进制的 Hex
颜色值来设置颜色 通过使用 Hex
颜色值