如何在Android中将颜色整数转换为hexstring?

我有一个从android.graphics.Color生成的整数

Integer的值是-16776961

如何将此值转换为格式为#RRGGBB的hexstring

简单地说:我想从-16776961输出#0000FF

注:我不希望输出包含一个alpha,我也尝试过这个例子没有任何成功

掩码确保你只能得到RRGGBB,%06X给你零填充hex(总是6个字符长):

 String hexColor = String.format("#%06X", (0xFFFFFF & intColor)); 

试试Integer.toHexString()

来源: 在Java中,如何将字节数组转换为hex数字string,同时保持前导零?

我相信我已经find了答案,这段代码将整数转换为一个hexstring和删除阿尔法。

 Integer intColor = -16895234; String hexColor = "#" + Integer.toHexString(intColor).substring(2); 

请注意,只有使用这段代码才能确定删除alpha不会影响任何内容。

这是我做的

  int color=//your color Integer.toHexString(color).toUpperCase();//upercase with alpha Integer.toHexString(color).toUpperCase().substring(2);// uppercase without alpha 

感谢你们的答案做了这件事

使用这种方法Integer.toHexString ,当使用Color.parseColor时,对于某些颜色可以有一个Unknown颜色exception。

用这个方法String.format(“#%06X”,(0xFFFFFF&intColor)) ,你将失去alpha值。

所以我推荐这个方法:

 public static String ColorToHex(int color) { int alpha = android.graphics.Color.alpha(color); int blue = android.graphics.Color.blue(color); int green = android.graphics.Color.green(color); int red = android.graphics.Color.red(color); String alphaHex = To00Hex(alpha); String blueHex = To00Hex(blue); String greenHex = To00Hex(green); String redHex = To00Hex(red); // hexBinary value: aabbggrr StringBuilder str = new StringBuilder("#"); str.append(alphaHex); str.append(blueHex); str.append(greenHex); str.append(redHex ); return str.toString(); } private static String To00Hex(int value) { String hex = "00".concat(Integer.toHexString(value)); return hex.substring(hex.length()-2, hex.length()); } 
 String int2string = Integer.toHexString(INTEGERColor); //to ARGB String HtmlColor = "#"+ int2string.substring(int2string.length() - 6, int2string.length()); // a stupid way to append your color