将RGBA值转换为十六进制颜色代码

我的应用程序中有一些滑块,允许用户更改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值时,我得到了输入字符串“ 0xccffffff”的NumberFormatException:

int color = toHex(new Color(153f, 153f, 153f, 0.80f));

关于如何将其转换为整数的任何想法?谢谢。

回答:

Color参数必须在1f和0f之间浮动。因此,这是一种有效的颜色:

int color = toHex(new Color(1f, 1f, 1f, 1f));

是白色的。

以上是 将RGBA值转换为十六进制颜色代码 的全部内容, 来源链接: utcz.com/qa/435561.html

回到顶部