首页 > 移动平台 > 详细

android bitmap 防止 内存溢出

时间:2015-04-13 20:40:51      阅读:277      评论:0      收藏:0      [点我收藏+]

参考:http://blog.csdn.net/huangbiao86/article/details/8072128

 

1.读取图片用BitmapFactory.decodeStream() 和BitmapFactorty.decodeFile() 避免用BitmapFactory.decodeResource ,前两个函数调用JNI>>nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap,从而节省了java层的空间。

注意: 通过查看源代码 发现 BitmapFactory.decodeResource最终也调用 nativeDecodeAsset()

 

2.优化Dalvik虚拟机的堆内存分配

在程序onCreate时就可以调用

private final static floatTARGET_HEAP_UTILIZATION = 0.75f; VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);即可。

private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;

VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //设置最小heap内存为6MB大小。当然对于内存吃紧来说还可以通过手动干涉GC去处理

3.options设置图片尺寸   options.inSampleSize

private ImageView preview;
private String fileName= "/sdcard/DCIM/Camera/2010-05-14 16.01.44.jpg";
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;//图片宽高都为原来的二分之一,即图片为原来的四分之一
Bitmap b = BitmapFactory.decodeFile(fileName, options);
preview.setImageBitmap(b);
filePath.setText(fileName);

 

android bitmap 防止 内存溢出

原文:http://www.cnblogs.com/wjw334/p/4422873.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!