在Android中将RGB转换为HEX代码

时间:2015-08-10 07:13:16

标签: android hex rgb

我想将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  

任何想法我怎么能解决这个问题?你的所有建议都很明显。

2 个答案:

答案 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);