0

我正在尝试将 RGBA 值(4 个值拆分)转换为 HEX 值。

目前,我有这段代码:

int red = Integer.parseInt(colors[0]);
int green = Integer.parseInt(colors[1]);
int blue = Integer.parseInt(colors[2]);
float alpha = Float.parseFloat(colors[3]);

所以现在,我想将这些颜色转换为 HEX,所以我可以使用这种方法来创建颜色:new ColorDrawable(0xFF99CC00)

有小费吗?

4

4 回答 4

2
public int toHex(Color color) {
    String alpha = pad(Integer.toHexString(color.getAlpha()));
    String red = pad(Integer.toHexString(color.getRed()));
    String green = pad(Integer.toHexString(color.getGreen()));
    String blue = pad(Integer.toHexString(color.getBlue()));
    String hex = "0x" + alpha + red + green + blue;
    return Integer.parseInt(hex, 16);
}

private static final String pad(String s) {
    return (s.length() == 1) ? "0" + s : s;
}

用法

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

或者你可以使用

Color.argb(a_int, r_int, g_int, b_int);
//(Multiply int value by 255.0f)
于 2013-07-25T09:06:06.493 回答
1

发现它:

ActionBar bar = this.getActionBar();
String hex = String.format("#%02x%02x%02x%02x", alpha,red, green, blue);
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(hex)));
于 2013-07-25T09:08:51.720 回答
0

将 rgba 转换为 Hexa 颜色:您可以使用此功能,rgba 值例如:rgba(255,249,249,0.54)

fun rgbaToHexa(color: String): String? {
    try {
        val value = color.removePrefix("rgba(").removeSuffix(")").split(",")
        val red = value[0].toInt()
        val green = value[1].toInt()
        val blue = value[2].toInt()

        val hex = String.format("#%02x%02x%02x", red, green, blue)

        return hex
    } catch (e: Exception) {
        loge("exception:${e.printStackTrace()}")
    }

    return null
}
于 2021-08-11T05:49:32.183 回答
-1

您可以尝试使用以下内容:http: //developer.android.com/reference/android/graphics/Color.html#argb(int,%20int,%20int,%20int)

于 2013-07-25T08:51:22.143 回答