美文网首页
Android中根据已知色值获取更深或更浅的颜色

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

作者: 43d60efa37c7 | 来源:发表于2017-10-19 18:03 被阅读371次
    // 获取更深颜色
    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

相关文章

网友评论

      本文标题:Android中根据已知色值获取更深或更浅的颜色

      本文链接:https://www.haomeiwen.com/subject/zkkpuxtx.html