BitmapFactory.Options 图片解析

BitmapFactory.Options

BitmapFactory.Options options= new BitmapFactory.Options();
options.inJustDecodeBounds = true;
//避免OOM 该字段设置为true的话,那么返回的就不是Bitmap对象,而是返回该对象的宽和高的参数
BitmapFactory.decodeFile(path,options); //将图片文件解析成Bitmap对象
int width = options.outWidth;
int height = options.outHeight;
//获取解析完成图片的宽和高

//将一个图片按照指定的宽高显示
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.outWidth = width;
options.outHeight = height;
Bitmap bitmap = BitmapFactory.decodeFile(path,options);
imageView.setBitmap(bitmap);

options.inDither = false; //不进行图片的抖动处理

options.inPreferredConfig = Bitmap.Config.ARGB_4444;//默认是Bitmap.Config.ARGB_8888 设置解码器,以最佳的方式进行解码

option.inPurgeable = true;
/*
如果inPurgeable 设为True的话表示使用BitmapFactory创建的Bitmap用于存储Pixel的内存空间在系统内存不足时可以被回收,在应用需要再次访问Bitmap的Pixel时(如绘制Bitmap或是调用getPixel),系统会再次调用BitmapFactory decoder重新生成Bitmap的Pixel数组。为了能够重新解码图像,bitmap要能够访问存储Bitmap的原始数据。
*/

options.inInputShareable = true;
/*
在inPurgeable为false时表示创建的Bitmap的Pixel内存空间不能被回收,这样BitmapFactory在不停decodeByteArray创建新的Bitmap对象,不同设备的内存不同,因此能够同时创建的Bitmap个数可能有所不同, 200个bitmap足以使大部分的设备重新OutOfMemory错误。当isPurgable设为true时,系统中内存不足时,可以回收部分Bitmap占据的内存空间,这时一般不会出现OutOfMemory 错误。
*/

Notice:
options.inPurgeable = true; 必须和options.inInputShareable = true;一起使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值