根据标题,我的问题是: Android提供了任何方法来分析/确定颜色(显然是动态的)是浅色还是暗色?
发布于 2014-06-17 10:12:09
Android不提供它,您可以实现一个方法来确定这一点。这里有一个这样做的方法:
public boolean isColorDark(int color){
double darkness = 1-(0.299*Color.red(color) + 0.587*Color.green(color) + 0.114*Color.blue(color))/255;
if(darkness<0.5){
return false; // It's a light color
}else{
return true; // It's a dark color
}
}发布于 2018-01-15 16:48:37
如果使用支持库v4 (或AndroidX),则可以使用ColorUtils.calculateLuminance(color),它以0.0和1.0之间浮动的形式返回颜色亮度。
所以你可以做这样的事情:
boolean isDark(int color) {
return ColorUtils.calculateLuminance(color) < 0.5;
}请参见:
注意,自从Android 24之后,还有一个方法:Color.luminance(color)。
发布于 2017-03-18 06:29:16
public float getLightness(int color) {
int red = Color.red(color);
int green = Color.green(color);
int blue = Color.blue(color);
float hsl[] = new float[3];
ColorUtils.RGBToHSL(red, green, blue, hsl);
return hsl[2];
}人们可以很容易地使用ColorUtils来检查颜色的亮度。
if (getLightness(color) < 0.5f ){
// This color is too dark!
}https://stackoverflow.com/questions/24260853
复制相似问题