十六进制到RGB转换器,Android Studio

oknwwptz  于 2023-01-05  发布在  Android
关注(0)|答案(3)|浏览(138)

我已经做了转换器RGB到十六进制,但我没有找到函数做十六进制到RGB转换器。对于RGB到十六进制转换器,我用了3搜索栏,我已经做了项目(喜欢的代码)。
但是现在我想使用一个只有十六进制到RGB转换器的十六进制值的搜索栏。但是我找不到正确的函数,我该怎么办?

vnjpjtjt

vnjpjtjt1#

容我提议:

int color = Color.parseColor("#123456");

此外,您可以尝试:

public static int[] getRGB(final int hex) {
    int r = (hex & 0xFF0000) >> 16;
    int g = (hex & 0xFF00) >> 8;
    int b = (hex & 0xFF);
    return new int[] {r, g, b};
}

第一个月
或者,如果需要从字符串中获取:

public static int[] getRGB(final String rgb)
{
    int r = Integer.parseInt(rgb.substring(0, 2), 16); // 16 for hex
    int g = Integer.parseInt(rgb.substring(2, 4), 16); // 16 for hex
    int b = Integer.parseInt(rgb.substring(4, 6), 16); // 16 for hex
    return new int[] {r, g, b};
}

getRGB("123456");

xggvc2p6

xggvc2p62#

在Kotlin

fun getRgbFromHex(hex: String): IntArray {
            val initColor = Color.parseColor(hex)
            val r = Color.red(initColor)
            val g = Color.green(initColor)
            val b = Color.blue(initColor)
            return intArrayOf(r, g, b, )
}
qmb5sa22

qmb5sa223#

对于ARGB,将此函数添加到您的Android代码中:

public static int[] getARGB(final int hex) {
    int a = (hex & 0xFF000000) >> 24;
    int r = (hex & 0xFF0000) >> 16;
    int g = (hex & 0xFF00) >> 8;
    int b = (hex & 0xFF);
    return new int[] {a, r, g, b};
}

将字符串颜色解析为Color:

int color = Color.parseColor("#FFFFFFFF");

执行:

int argb[] = getARGB(color);
Log.d("getARGB", argb[0] + " " + argb[1] + " " + argb[2] + " " + argb[3]);

相关问题