Android中根据已知色值获取更深或更浅的颜色

    // 获取更深颜色
    public static int getDarkerColor(int color){
        float[] hsv = new float[3];
        Color.colorToHSV(color, hsv); // convert to hsv
        // make darker
        hsv[1] = hsv[1] + 0.1f; // 饱和度更高
        hsv[2] = hsv[2] - 0.1f; // 明度降低
        int darkerColor = Color.HSVToColor(hsv);
        return  darkerColor ;
    }
    // 获取更浅的颜色
    public int getBrighterColor(int color){
          float[] hsv = new float[3];
          Color.colorToHSV(color, hsv); // convert to hsv
                                                             
          hsv[1] = hsv[1] - 0.1f; // less saturation
          hsv[2] = hsv[2] + 0.1f; // more brightness
          int darkerColor = Color.HSVToColor(hsv);
          return  darkerColor ;
      }

Color.colorToHSV方法就是Convert the ARGB color to its HSV components.
HSV是一种颜色模型,hsv[0] 是色调(Hue),取值范围是0到360;hsv[1] 是饱和度( Saturation),取值范围是0到1,值越高,颜色越接近光谱色;hsv[2] 是明度( Value ),取值范围是0到1。具体见百度百科HSV

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容