Android HSL 颜色值计算

需求

在这里插入图片描述

代码
    float[] outHsl = new float[]{0f, 0f, 0f};

        ColorUtils.colorToHSL(Color.parseColor("#ef2b2c"), outHsl);
        ((ImageView) findViewById(R.id.imageView5)).setBackgroundColor(Color.parseColor("#ef2b2c"));

        LogUtils.e("" + outHsl.toString());


        float[] newHsl = new float[]{15, outHsl[1] * 1.16f, outHsl[2] * 0.93f};


        ColorUtils.HSLToColor(newHsl);
        ((ImageView) findViewById(R.id.imageView6)).setBackgroundColor(ColorUtils.HSLToColor(newHsl));
        ((ImageView) findViewById(R.id.imageView7)).setBackgroundColor(Color.parseColor("#ff4306"));
        float[] outHsl1 = new float[]{0f, 0f, 0f};
        ColorUtils.colorToHSL(Color.parseColor("#ff4306"), outHsl1);

        ((TextView) findViewById(R.id.textView10)).setText("主 #ef2b2c \n" +
                "SHL" + Arrays.toString(outHsl) + "\n" +
                "C1 #ff4306 \n" +
                "C1 SHL" + Arrays.toString(newHsl) + "\n" +
                "C1 SHL" + Arrays.toString(outHsl1) + "\n"

        );
结果

在这里插入图片描述

简单的封装使用

    /**
     *
     * @param color 颜色值
     * @param outHsl 输出比例
     * @return
     */
    public static int computeHSL(String color, float... outHsl) {
        float[] hsl = new float[]{0f, 0f, 0f};
        ColorUtils.colorToHSL(Color.parseColor(color), hsl);
        float[] newHsl = new float[]{outHsl[0], hsl[1] * outHsl[1], hsl[2] * outHsl[2]};
        return ColorUtils.HSLToColor(newHsl);

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值