我想将RGB颜色转换为HEX代码,所以下面是我的代码
ColorPickerDialog colorPickerDialog = new ColorPickerDialog(getActivity(), initialColor, new ColorPickerDialog.OnColorSelectedListener() {
@Override
public void onColorSelected(int color) {
String rgbString = "R: " + Color.red(color) + " B: " + Color.blue(color) + " G: " + Color.green(color);
int[] c={Color.red(color),Color.green(color),Color.blue(color)};
int sd=getHexColor(c);
System.out.println("HEx "+sd);
}
});
colorPickerDialog.show();
getHexColor函数
public int getHexColor(int[] color) {
return android.graphics.Color.rgb(color[0], color[1], color[2]);
}
当我运行上面的代码时,它给了我十六进制代码,如下所示
-16569089 but i want like this #23ab34
任何想法我怎么能解决这个问题?你的所有建议都很明显。
答案 0 :(得分:1)
您可以使用
String hex = String.format("#%02x%02x%02x", r, g, b);
答案 1 :(得分:0)
Android颜色值包含alpha值。 ARGB
你可以转换颜色。
int intColor = -16569089;
String hex = Integer.toHexString(intColor);
//prints ff032cff , A:ff, R:3, G:2c, B: ff
System.out.println(hex);
// remove alpha channel
int intColorRGB = intColor & 0x00ffffff;
String hex2 = Integer.toHexString(intColorRGB);
// prints 32cff, ignore leading 0 (int value)
System.out.println(hex2);