android RGB颜色值调节亮度,饱和度,色调;hsv与rgb转化。

android RGB颜色值调节亮度,饱和度,色调

好久没写博客了,最近在做一个物联网的项目其中涉及到控制七彩灯设备,要求可以调节灯光的颜色,包括亮度,饱和度,色调,刚开始做这个七彩灯的时候也不知道16进制的rgb怎么能调节亮度,饱和度,色调。那只有百度上搜喽。推荐两个博客第一个第二个;这两个看完基本也就了解的差不多了。下面我就结合我的项目来说说怎么hsv与rgb之间互相转化。

主要用到的就是 如下方法,传两个参数。官方说注释写的挺详细的。

  /**
     * Convert the ARGB color to its HSV components.
     * <ul>
     *   <li><code>hsv[0]</code> is Hue \([0..360[\)</li>(色调,取值范围0-360)
     *   <li><code>hsv[1]</code> is Saturation \([0...1]\)</li>(饱和度,取值范围0-1)
     *   <li><code>hsv[2]</code> is Value \([0...1]\)</li>(亮度,取值范围0-1)
     * </ul>
     * @param color the argb color to convert. The alpha component is ignored.(16进制RGB颜色值)
     * @param hsv  3 element array which holds the resulting HSV components.(长度3的float数组)
     */
    public static void colorToHSV(@ColorInt int color, @Size(3) float hsv[]) {
        RGBToHSV((color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, hsv);
    }

我就简单介绍下怎么使用这个方法吧。直接伪代码演示。

               private float mHue;//色调范围0-360
               private float mSat;//饱和度范围0-1
               private float mVal;//亮度范围0-1

                int mColor=Color.parseColor("#EC5745");//随便定义一个16进制颜色值
                float[] hsv = new float[3];//定义一个长度为3的数组
                Color.colorToHSV(mColor, hsv);//转化hsv
                //转化结果
               // mHue = hsv[0];//色调范围0-360
               // mSat =  hsv[1];//饱和度范围0-1
                //mVal =  hsv[2];//亮度范围0-1

                //可以自己调整大小 progress==进度;seekBar.getMax()==100(就是个进度条)
                mHue = (float) (3.6 * progress);////色调范围0-360
                mSat = (float) progress / seekBar.getMax();//饱和度范围0-1
                mVal = (float) progress / seekBar.getMax();//亮度范围0-1
                //最后可以将更改后的hvs值在设置到view背景上。
                view.setColor(Color.HSVToColor(new float[]{mHue, mSat, mVal}));

是不是很简单啊,提前是把上面两个博客看完,了解下hsv;hsv和RGB的转换关系。
google帮我们写好的两个转化的方法

Color.colorToHSV();
Color.HSVToColor();

demo地址demo;在com.example.androidremark.ui3.light包下的ColorLightActivity。有兴趣可以下载源码看看。效果如下
这里写图片描述

猜你喜欢

转载自blog.csdn.net/caobin_study/article/details/81627102