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。有兴趣可以下载源码看看。效果如下
这里写图片描述

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值