在 android 中将 RGB 转换为十六进制代码
Conveter RGB to HEX code in android
我想将 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
知道我该如何解决这个问题吗?你的所有建议都很有价值。
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);
您可以使用
String hex = String.format("#%02x%02x%02x", r, g, b);
我想将 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
知道我该如何解决这个问题吗?你的所有建议都很有价值。
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);
您可以使用
String hex = String.format("#%02x%02x%02x", r, g, b);