我的应用程序中有一些滑块允许用户更改ARGB颜色,但我需要将这些值转换为十六进制值,如0xff000000,它是纯黑色.
这是我到目前为止:
protected int toHex(Color col) {
String as = pad(Integer.toHexString(col.getAlpha()));
String rs = pad(Integer.toHexString(col.getRed()));
String gs = pad(Integer.toHexString(col.getGreen()));
String bs = pad(Integer.toHexString(col.getBlue()));
String hex = "0x" + as + rs + gs + bs;
return Integer.parseInt(hex,16);
}
private static final String pad(String s) {
return (s.length() == 1) ? "0" + s : s;
}
但是在获得如下的Integer值后,我得到输入字符串的NumberFormatException:“0xccffffff”:
int color = toHex(new Color(153f,153f,0.80f));
有关如何将其转换为整数的任何想法?谢谢.
最佳答案
Color参数必须在1f和0f之间浮动.所以这是一个有效的颜色:
原文链接:https://www.f2er.com/java/438085.htmlint color = toHex(new Color(1f,1f,1f));
哪个是白色的.