https://developer.android.google.cn/reference/android/support/v4/graphics/ColorUtils.html#HSLToColor(float[])
需要了解一下 颜色模型
https://baike.baidu.com/item/%E9%A2%9C%E8%89%B2%E6%A8%A1%E5%9E%8B/7558583?fr=aladdin&fromtitle=Lab&fromid=1514615
主 颜色控制的 工具
主要看一下方法吧:
//转换HSL(色调 - 饱和度 - 亮度)分量的RGB颜色。 //hsl[0]: [0 .. 360) 色调 //hsl[1]: [0...1] 饱和度 //hsl[2]: [0...1] 亮度 ColorUtils.HSLToColor(hsl[0],hsl[1],hsl[2]); //转换LAB 颜色模型 ColorUtils.LABToColor(l,a,b); //LAB To XYZ ColorUtils.LABToXYZ(l,a,b,outXyz); //RGB To HSL ColorUtils.RGBToHSL(r, g, b, outHsl); //RGB To LAB ColorUtils.RGBToLAB(r,g,b,outLab); //RGB To XYZ ColorUtils.RGBToXYZ(r, g, b, outXyz); //XYZ To Color ColorUtils.XYZToColor(x, y, z); //XYZ To LAB ColorUtils.XYZToLAB(x, y, z, outLab); //blendARGB 使用给定的比例的两种ARGB颜色之间混合。 //ratio : 混合的比例 0-1之间 ColorUtils.blendARGB(color1, color2, ratio); //blendHSL 使用给定的比率HSL1和HSL2之间进行混合。这将内插使用最短角色调。 ColorUtils.blendHSL(hsl1, hsl2, ratio, outResult); //blendLAB ColorUtils.blendLAB(lab1, lab2, ratio, outResult); //calculateContrast 返回前景和背景之间的对比度。背景必须是不透明的。 ColorUtils.calculateContrast(foreground, background); //calculateLuminance 返回一个颜色为0.0和1.0之间的浮体的亮度。 ColorUtils.calculateLuminance(color); //calculateMinimumAlpha 计算可应用于前景使本来相比背景至少minContrastRatio的对比度值的最小α值。 // 这个是返回透明度 ColorUtils.calculateMinimumAlpha(forground,background, minContrastRatio); //colorToHSL 转换ARGB颜色到其HSL(色调 - 饱和度 - 亮度)分量。 //outHsl[0] [0 .. 360) 色调 //outHsl[1] [0...1] 饱和度 //outHsl[2] [0...1] 亮度 ColorUtils.colorToHSL(color, outHsl[]); //colorToLAB 转换的ARGB颜色的CIE实验室的代表组成。 //colorToXYZ 转换的ARGB颜色的CIE XYZ代表组成。 //compositeColors 复合2种潜在半透明颜色在彼此之上,并返回结果。 ColorUtils.compositeColors(a, b); //distanceEuclidean 返回两个LAB颜色之间的欧氏距离。 ColorUtils.distanceEuclidean(labx, laby); //setAlphaComponent 设置颜色的Alpha。 ColorUtils.setAlphaComponent(color,alpha);