在 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);