通过BitmapFactory.decodeByteArray把byte[]转成Bitmap出现的OOM的解决方法
2014-09-24 11:57
417 查看
在自定义照相中,由于返回的结果是byte[]类型的,需要对结果进行旋转,于是把就要把它转成bitmap类型的,最开始使用Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length)来转,老报OOM,在网上也找了很多关于优化OOM的方法。
最后,采用了以下方法后,再也没有报OOM了
public static Bitmap byteToBitmap(byte[] imgByte) {
InputStream input = null;
Bitmap bitmap = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
input = new ByteArrayInputStream(imgByte);
SoftReference softRef = new SoftReference(BitmapFactory.decodeStream(
input, null, options));
bitmap = (Bitmap) softRef.get();
if (imgByte != null) {
imgByte = null;
}
try {
if (input != null) {
input.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bitmap;
}
最后,采用了以下方法后,再也没有报OOM了
public static Bitmap byteToBitmap(byte[] imgByte) {
InputStream input = null;
Bitmap bitmap = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
input = new ByteArrayInputStream(imgByte);
SoftReference softRef = new SoftReference(BitmapFactory.decodeStream(
input, null, options));
bitmap = (Bitmap) softRef.get();
if (imgByte != null) {
imgByte = null;
}
try {
if (input != null) {
input.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bitmap;
}
相关文章推荐
- 通过BitmapFactory.decodeByteArray把byte[]转成Bitmap出现的OOM的解决方法
- 血的教训 BitmapFactory.decodeByteArray() 是个邪恶的方法
- BitmapFactory.decodeByteArray() 返回null,分析与解决
- BitmapFactory.decodeByteArray() 返回null,分析与解决
- BitmapFactor.decodeByteArray方法导致OOM
- 调用 BitmapFactory.decodeByteArray 函数返回 null 值
- android获取网络图片的用法 BitmapFactory.decodeByteArray 返回null
- android获取网络图片的用法 BitmapFactory.decodeByteArray
- BitmapFactory.decodeByteArray如何使用
- 关于BitmapFactory.decodeStream(is)方法无法正常解码为Bitmap对象的解决方法
- asp.net 发布到IIS中出现”处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”“错误的解决方法
- 已解决:好用的集成PHP环境 一键安装包PHPNow--Win7下安装phpnow的方法出现[ Apache_pn ] 错误的解决 !(亲自测试通过)
- bash 中 while读取文件并通过 ssh执行命令出现的问题及解决方法
- Ubuntu下,通过gem安装mysql时,出现Failed to build gem native extension.错误的解决方法
- BitmapFactory.decodeResource加载图片缩小的原因及解决方法
- Jsp中通过get方法传递参数为中文时出现乱码如何解决?
- BitmapFactory.decodeResource加载图片缩小的原因及解决方法
- 已解决:好用的集成PHP环境 一键安装包PHPNow--Win7下安装phpnow的方法出现[ Apache_pn ] 错误的解决 !(亲自测试通过)
- 页面上通过地址栏传值时出现乱码的两种解决方法
- vs2005 sp1安装时出现数字签名未通过解决方法