当前位置: 首页 > 面试题库 >

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

薛宏壮
2023-03-14
问题内容

我的应用程序中有一些滑块,允许用户更改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));

是白色的。



 类似资料:
  • 问题内容: 我正在从服务器接收十六进制颜色值(以这种形式,例如黑色) 如何将其转换为整数值? 我试图做一个更疯狂的结果,但这不是这里的解释,还有其他建议吗? 我收到一个错误: 我正在使用Android SDK来执行其功能,该功能需要-您可能已经猜到了-整数颜色值。 问题答案: 真正的答案是使用: 在Android中,其值为或或。 但是,此功能不支持诸如的速记十六进制值。

  • 问题内容: 我在该主题上找到的所有内容都只是将十六进制转换为rgb,然后添加一个Alpha1。我也想从十六进制数字中获得所需的Alpha。 诸如或明显具有不为0或1的Alpha值的颜色。 问题答案: 我已经制作了一个快速的JSfiddle表格,可以将8位十六进制代码转换为CSS rgba值;) 基础很简单-将您提供的字符串分成两位数的一部分,并转换为alpha通道的百分比率和RGB通道的小数位。标

  • 我用JSON格式存储了很多颜色。我使用rootbeer via gulp将它们转换为sass映射,可以由SCSS处理: 至 我可以很好地使用语法中的颜色,但一旦应用了任何颜色函数,如,编译器就会失败,因为颜色类型完全消失了。 即使使用也不允许sass将其视为字符串,但它需要是一种颜色。 我的问题是,是否有任何方法可以让我强制编译器将此作为一种颜色来处理呢?另一种方法是省略所有内置颜色函数的使用。

  • 问题内容: 在我的Java应用程序,我能得到的中的红色,绿色和蓝色的条款; 我将这些值存储在3 秒内。 如何将这些RGB值转换为包含等效十六进制表示形式的?如 问题答案: 您可以使用 资金使用X如果你希望你得到的十六进制数字予以资本化(的对比)。

  • 这就是我所做的 这将返回一个字符串“0XFFhexcode”,我想将其转换为long,将其存储,然后将其用作颜色 我有以下错误

  • 问题内容: 是否有将颜色转换为十六进制表示的内置函数?就像我想传递“白色”并接收“ #FFFFFF”一样。我真的想避免对所有数百个代码进行编码:) 问题答案: 不,但是使用此列表可以创建一个。像这样: