【问题标题】:How to convert 8 characters String to ARGB color format in Java?如何在 Java 中将 8 个字符的字符串转换为 ARGB 颜色格式?
【发布时间】:2012-01-27 09:48:33
【问题描述】:

当我在文本字段中输入颜色代码 (AARRGGBB) 时,我需要使用字符串表示的颜色(格式化为 AARRGGBB)更新组件。我把它分成 4 个子串,然后我停下来。

我需要将 RR 字符串设置为浮点值,所以在所有过程之后我应该创建一个颜色,如:

Color c = new Color(floatA, floatR, floatG, floatB);

欢迎任何建议,只要我最终会得到颜色。

【问题讨论】:

  • 1) 好的 2)kinda 3) 我已经有一个与我从中获取颜色代码的文本字段相关联的颜色选择器。我正在为 textField 编写一个 actionListener 和一个 focusListener,它表示当我输入颜色代码时,一个按钮将相应地着色,并且解析的颜色也将设置为 colorChooser

标签: java string parsing colors floating-point


【解决方案1】:
new Color((int)Long.parseLong(code, 16), true);

可能会起作用。

【讨论】:

  • 不,它没有。线程“AWT-EventQueue-0”java.lang.NumberFormatException 中的异常:对于输入字符串:java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 处 java.lang.Integer.parseInt(Integer.java) 处的“FF1A0000” :495)
  • 这个异常让我有点困惑,但这可能是因为 Java 不支持无符号整数类型,因此 F0000000 不允许解析为负数,而必须是 @987654323 @.
【解决方案2】:

使用范围 (0 - 255) 内的指定红色、绿色、蓝色和 alpha 值创建 sRGB 颜色。

new Color(100, 100, 100, 10) ;

创建具有指定组合 RGBA 值的 sRGB 颜色,该值由位 24-31 中的 alpha 分量、位 16-23 中的红色分量、位 8-15 中的绿色分量和位 0- 中的蓝色分量组成7.

new Color(0x000000, false); // BLACK 
new Color(0x00000000, true); // TRANSPARENT_BLACK

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 2013-09-22
    • 2022-11-02
    相关资源
    最近更新 更多