加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:19:31 所属栏目:Java 来源:网络整理
导读:我的应用程序中有一些滑块允许用户更改ARGB颜色,但我需要将这些值转换为十六进制值,如0xff000000,它是纯黑色. 这是我到目前为止: protected int toHex(Color col) { String as = pad(Integer.toHexString(col.getAlpha())); String rs = pad(Integer.toHexS

我的应用程序中有一些滑块允许用户更改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之间浮动.所以这是一个有效的颜色:

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

哪个是白色的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读