在使用 BitmapFactory
解析 bitmap 图像的时候,使用 options 选项可以配置 bitmap 对象的一些属性:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_4444; // 默认是Bitmap.Config.ARGB_8888
/* 下面两个字段需要组合使用 */
options.inPurgeable = true;
options.inInputShareable = true;
Bitmap bmp = BitmapFactory.decodeFile(path, options);
inPurgeable
是控制 Bitmap 对象是否使用软引用机制, 在系统需要的时候可以回收该对象, 如果在此后, 程序又需要使用该对象, 则系统重新 decode 该对象.
inInputShareable
和 inPurgeable 组合使用的, 是控制是否复制 inputfile 对象的引用, 如果不复制, 那么要实现 inPurgeable 机制就需要复制一份 file 数据, 才能在系统需要 decode 的时候创建一个 bitmap 对象.