从十六进制解析后更改RGB整数

时间:2017-01-08 18:37:56

标签: java android

代码:

String green = "#99FFCC";
adjustColor(green);

private int adjustColor(String color){
        int colorToAdjust = Color.parseColor(color);

        //Pseudocode
        int red = colorToAdjust.getRed();  //get red value from RGB
        red *= 0.5;                        //halve it
        colorToAdjust.setRed(red);         //set red value

        return colorToAdjust;
    }

给定一个字符串十六进制颜色,我将其解析为一个int。如何更改单个RGB颜色?上面是我正在尝试做的有点伪代码:解析十六进制,获取单独的颜色,更改它,将其写回来

1 个答案:

答案 0 :(得分:1)

您可以通过调用red()函数简单地提取红色数量,然后根据Blue&的原始值创建新颜色。绿色和之前提取的红色值减半。

然后,您可以通过调用rgb()函数并将其传递给Red,Green&的新值来创建新颜色。蓝色。

以下是代码段:

String green = "#99FFCC";
adjustColor(green);

private int adjustColor(String color) {
    /* Get RGB Value Of Color */
    int colorToAdjust = Color.parseColor(color);

    /* Get Red Value From RGB */
    int redAmount = Color.red(colorToAdjust);

    /* Return New Color By Halving Red */
    return Color.rgb(0.5 * redAmount, Color.green(colorToAdjust), 
                     Color.blue(colorToAdjust));
}

您可以查看此Reference以获取更多信息。