如何将十六进制颜色值转换为libgdx颜色?

时间:2018-08-29 15:32:41

标签: libgdx

我尝试先将其转换为RGB,然后将值除以255,但结果不是我想要的。颜色比原始颜色亮。

1 个答案:

答案 0 :(得分:2)

您是否尝试过Libgdx颜色类的函数valueOf()?

Color.valueOf(StringHex); //从String十六进制返回颜色

该函数执行以下操作,因为您没有发布任何代码,也许您可​​以在出现问题时发现它:

/** Returns a new color from a hex string with the format RRGGBBAA.
     * @see #toString() */
    public static Color valueOf (String hex) {
        hex = hex.charAt(0) == '#' ? hex.substring(1) : hex;
        int r = Integer.valueOf(hex.substring(0, 2), 16);
        int g = Integer.valueOf(hex.substring(2, 4), 16);
        int b = Integer.valueOf(hex.substring(4, 6), 16);
        int a = hex.length() != 8 ? 255 : Integer.valueOf(hex.substring(6, 8), 16);
        return new Color(r / 255f, g / 255f, b / 255f, a / 255f);
    }