Bitmap类解析
Bitmap类是对图像进行处理的类,可以获取图像信息,进行图像颜色变换等操作
在安卓中,Bitmap指的是一张图片,可以是 .png
或者 .jpg
等其他常见的图像格式
参考API:
Bitmap - Android中文版 - API参考文档 (apiref.com)
如何使用Bitmap加载图片
需要使用 BitmapFactory
类提供的四个方法:
decodeFile()
:从文件中加载Bitmap对象
decodeResource()
:从资源中加载Bitmap对象
decodeStream()
:从输入流中加载Bitmap对象
decodeByteArray()
:从字节数组中加载Bitmap对象
使用举例:
从资源中加载一张命名为 test 的图片,再加载到 ImageView
控件中
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test);
imageView.setImageBitmap(bitmap);
Bitmap颜色配置
Bitmap类中有两个枚举类,其中一个为Config类,用于配置颜色信息:
解析:
Bitmap.Config.ALPHA_8
:颜色信息只由透明度组成,占8位。
Bitmap.Config.ARGB_4444
:颜色信息由透明度与R(Red),G(Green),B(Blue)四部分组成,每个部分都占4位,总共占16位。
Bitmap.Config.ARGB_8888
:颜色信息由透明度与R(Red),G(Green),B(Blue)四部分组成,每个部分都占8位,总共占32位。是Bitmap默认的颜色配置信息,也是最占空间的一种配置。
Bitmap.Config.RGB_565
:颜色信息由R(Red),G(Green),B(Blue)三部分组成,R占5位,G占6位,B占5位,总共占16位。
通常我们优化Bitmap时,当需要做性能优化或者防止OOM,通常会使用 RGB_565
这个配置,因为 ALPHA_8
只有透明度,显示一般图片没有意义,而 ARGB_4444
显示图片不清楚,ARGB_8888
则占用内存最多。
测试一下:
主要代码如下:
// 加载原图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test);
imageView.setImageBitmap(bitmap);
// 测试其他颜色模式