关于 Android 中 Bitmap 的 ARGB_8888、ALPHA_8、ARGB_4444、RGB_565 的理解

ARGB

A 是 alpha,透明度。
RGB 是 Red、Green、Blue,红色、绿色、蓝色,三种原色。

Bitmap.Config 有四种枚举类型。

  • ARGB_8888:ARGB 四个通道的值都是 8 位,加起来 32 位,也就是 4 个字节。每个像素点占用 4 个字节的大小。
  • ARGB_4444:ARGB 四个通道的值都是 4 位,加起来 16 位,也就是 2 个字节。每个像素点占用 2 个字节的大小。
  • RGB_565:RGB 三个通道分别是 5 位、6 位、5 位,没有 A 通道,加起来 16 位,也就是 2 个字节。每个像素点占用 2 个字节的大小。
  • ALPHA_8:只有 A 通道,占 8 位,1 个字节。每个像素点占用 1 个字节的大小。

那到底用哪个呢?

很明显 ARGB_8888 的图片是质量最高的,但也是占用内存最大的。

如果想要节省内存,可以使用 ARGB_4444 或者 RGB_565。它们相比 ARGB_8888 内存占用都小了一半。
ARGB_4444 图片的失真是比较严重的。
RGB_565 图片的失真虽然很小,但是没有透明度。

ALPHA_8 只有透明度,没有颜色值。对于在图片上设置遮盖的效果的是有很有用。

总结一下!
ARGB_4444 图片失真严重,基本不用!
ALPHA_8 使用场景比较特殊!
如果不设置透明度,RGB_565是个不错选择!
既要设置透明度,对图片质量要求又高的化,那就用 ARGB_8888 !

你可能感兴趣的:(关于 Android 中 Bitmap 的 ARGB_8888、ALPHA_8、ARGB_4444、RGB_565 的理解)