当前位置: 代码迷 >> Android >> Android 色彩对比
  详细解决方案

Android 色彩对比

热度:73   发布时间:2016-04-28 00:25:32.0
Android 颜色对比

1、Android 颜色对比

    /** Calculates the constrast between two colors, using the algorithm provided by the WCAG v2. */    public static float computeContrastBetweenColors(int bg, int fg) {        float bgR = Color.red(bg) / 255f;        float bgG = Color.green(bg) / 255f;        float bgB = Color.blue(bg) / 255f;        bgR = (bgR < 0.03928f) ? bgR / 12.92f : (float) Math.pow((bgR + 0.055f) / 1.055f, 2.4f);        bgG = (bgG < 0.03928f) ? bgG / 12.92f : (float) Math.pow((bgG + 0.055f) / 1.055f, 2.4f);        bgB = (bgB < 0.03928f) ? bgB / 12.92f : (float) Math.pow((bgB + 0.055f) / 1.055f, 2.4f);        float bgL = 0.2126f * bgR + 0.7152f * bgG + 0.0722f * bgB;                float fgR = Color.red(fg) / 255f;        float fgG = Color.green(fg) / 255f;        float fgB = Color.blue(fg) / 255f;        fgR = (fgR < 0.03928f) ? fgR / 12.92f : (float) Math.pow((fgR + 0.055f) / 1.055f, 2.4f);        fgG = (fgG < 0.03928f) ? fgG / 12.92f : (float) Math.pow((fgG + 0.055f) / 1.055f, 2.4f);        fgB = (fgB < 0.03928f) ? fgB / 12.92f : (float) Math.pow((fgB + 0.055f) / 1.055f, 2.4f);        float fgL = 0.2126f * fgR + 0.7152f * fgG + 0.0722f * fgB;        return Math.abs((fgL + 0.05f) / (bgL + 0.05f));    }


  相关解决方案