代码:
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颜色?上面是我正在尝试做的有点伪代码:解析十六进制,获取单独的颜色,更改它,将其写回来
答案 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以获取更多信息。