代码:
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;
}
给定一个字符串十六进制颜色,我将其解析为一个整数。如何更改单个 RGB 颜色?上面是我正在尝试做的一些伪代码:解析十六进制,获取单独的颜色,更改它,写回
最佳答案
您可以通过调用red()
函数简单地提取红色的数量,然后根据蓝色和绿色的原始值以及您之前提取的红色的一半值创建新颜色。
然后您可以通过调用 rgb()
函数并将红色、绿色和蓝色的新值传递给它来创建新颜色。
这是代码 fragment :
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获取更多信息。
关于java - 从十六进制解析后更改 RGB 整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41536353/