Android 颜色编码 ARGB & RGBA

657 阅读1分钟

1. 什么是ARGB和RGBA,他们的区别是?

ARGB和RGBA是不同的颜色编码方式。

同:

均由RGB色彩空间和Alpha通道组成。其中Alpha通道是图像的透明度参数。R、G、B分别代表红、绿、蓝色通道。

异:

二者区别在于通道顺序的不同。ARGB颜色值的排列顺序是 Alpha-Red-Green-Blue,例如0xFF112233。RGBA颜色值的排列顺序是 Red-Green-Blue-Alpha,例如0x112233FF(FF代表透明度)。

2. Android中一般使用哪种颜色编码方式?

ARGB。 并且Android原生的Color不支持RGBA。

3. 在Android中收到RGBA格式的颜色编码,如何处理?

写辅助方法,手动把Alpha拼在前面,转化成ARGB格式

fun wrapRgbaToArgbStr(colorStr: String?, defaultColor: String = "#000000"): String {
    if (colorStr?.startsWith("#") == false) {
        return defaultColor
    }

    if (colorStr?.length == 7) {
        return colorStr
    }

    if (colorStr?.length == 9) {
        return colorStr.substring(0, 1) + colorStr.substring(7) + colorStr.substring(1, 7)
    }

    return defaultColor
}