在应用程序中,当你点击屏幕时,你需要将颜色更改为随机,但必须是RGB格式。如何获得随机RGB颜色?
class _HomePageState extends State<HomePage> {
Color _color = Colors.white;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Color picker"),
centerTitle: true,
),
body: GestureDetector(
onTap: () {
setState(() {
_color = ...
});
},
child: Container(
color: _color,
padding: const EdgeInsets.all(20),
),
),
);
}
}
4条答案
按热度按时间mfpqipee1#
你可以这样做
umuewwlo2#
最好的方法是得到一个随机的颜色:
需要此导入。
或
c2e8gylq3#
其他解决方案(到目前为止)实际上是创建一个任意的RGB值,但我怀疑OP想要一个“不同但可行的颜色”。随机RGB是生成这些的糟糕方法。您希望HSV方向的随机性。
在这种情况下,向
HSVColor.fromAHSV
提供随机值。Alpha应该是1。0(不透明)。色调可以是0之间的任意值。0到360.0。饱和度应该在0之间。5和1.0(颜色比灰色多)。该值应介于0之间。0和0.5,如果你有对比度轻文本,和0。5到1.0,如果你有对比的深色文本。irtuqstp4#
这与@Jasmin的答案类似。但我觉得这会有帮助。
但是如果你是在生产,我建议你做一个颜色列表,并从列表中得到随机的颜色。因此,生成的颜色与我们的屏幕不兼容。