gpt4 book ai didi

flutter - 如何检查背景颜色的亮度以确定写在上面的文本颜色

转载 作者:行者123 更新时间:2023-12-05 00:57:33 25 4
gpt4 key购买 nike

我有一个简单的问题,但我无法找到答案。请注意,我几乎是一个完整的初学者。

所以我有一个应用程序(它不是我的,但我正在为它做出贡献),其中有一个彩色背景上的文字,用户可以更改它。如果背景足够亮,文字应该显示为黑色,否则保持白色。

该应用程序是一款面向中小学生的学校日记应用程序,可连接到匈牙利的全州学校日记服务。这里,最好的音符是 5,最差的是 1。用户可以在设置中设置每个等级的颜色。现在,只有注释“4”的代码被硬编码为黑色文本(因为“4”注释的背景默认为黄色),所有其他的都是白色的。这就是我想要自动化的。

Example of white text

Example of black text

This is the main screen of the app for reference

Page where user can change color for a kind of note

立即编码:

switch (evaluation.NumberValue) {
case 1:
bColor = globals.color1;
fColor = Colors.white;
break;
case 2:
bColor = globals.color2;
fColor = Colors.white;
break;
case 3:
bColor = globals.color3;
fColor = Colors.white;
break;
case 4:
bColor = globals.color4;
fColor = Colors.black; //This should be white if color4 is dark enough. Same applies to all of them.
break;
case 5: //I'm looking for something like this:
bColor = globals.color5;
fColor = (lightLevel(globals.color5) > 50) ? Colors.black : Colors.white;
break;
default:
bColor = Colors.black;
fColor = Colors.white;
break;
}

我正在寻找这样的东西:

 case 5: //I'm looking for something like this:
bColor = globals.color5;
fColor = (lightLevel(globals.color5) > 50) ? Colors.black : Colors.white;
break;

感谢您的帮助!

最佳答案

我可以建议 2 个选项:

  1. ThemeData.estimateBrightnessForColor方法例如
Color calculateTextColor(Color background) {
return ThemeData.estimateBrightnessForColor(background) == Brightness.light ? Colors.black : Colors.white;
}

  1. Color.computeLuminance方法例如
Color calculateTextColor(Color background) {
return background.computeLuminance() >= 0.5 ? Colors.black : Colors.white;
}

请记住,两者都计算成本很高。前者在引擎盖下使用后者。区别在于如何计算明暗阈值。

关于flutter - 如何检查背景颜色的亮度以确定写在上面的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59909746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com