检查Android中的颜色是否黑暗或光线

根据标题,我的问题是:Android是否提供任何方式来分析/确定颜色(显然是dynamic的)是亮还是暗?

Solutions Collecting From Web of "检查Android中的颜色是否黑暗或光线"

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 } } 
 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! } 

另一个scheme

private static final int BRIGHTNESS_THRESHOLD = 130;

 /** * Calculate whether a color is light or dark, based on a commonly known * brightness formula. * * @see {@literal http://en.wikipedia.org/wiki/HSV_color_space%23Lightness} */ public static boolean isColorDark(int color) { return ((30 * Color.red(color) + 59 * Color.green(color) + 11 * Color.blue(color)) / 100) <= BRIGHTNESS_THRESHOLD; }