在Flutter中检测颜色是浅色还是深色

10

在Flutter中,有没有一种方法可以检查颜色是深色还是浅色,即黑色或白色,然后获取布尔值 true 或 false?


这个回答解决了你的问题吗?如何根据背景颜色决定字体颜色? - Peter O.
2个回答

14

您还可以使用这种方法来获取亮度并应用由W3C指定的阈值。在Dart代码中,它可能是这样的:

Color getFontColorForBackground(Color background) {
  return (background.computeLuminance() > 0.179)? Colors.black : Colors.white;
}

在此可以找到更多背景信息:https://dev59.com/sW865IYBdhLWcg3wLrhE#3943023


9

为了检查颜色是暗还是亮,我们需要将该颜色转换为其灰度颜色。从RGB值计算任何颜色的灰度值的公式为:

灰度值 = (0.299 * 红色) + (0.587 * 绿色) + (0.114 * 蓝色)

然后检查:

if(grayscale > 128){
    // color is light
}else{
    // color is dark
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接