Android在加载大图片时,易出现内存溢出的情况 解决方案一
2012-06-11 10:51
267 查看
转:http://www.maxiaoguo.com/shipin/324.html Android在加载大图片时,易出现内存溢出的情况,特别是在做多图浏览的时候。 如:Bitmap bitMap = BitmapFactory.decodeFile(file); 此种方式读取图片的时候就容易内存溢出(图片大小500k~~2M或更大)。如下给出解除此类问题的一种方法: // 按图片大小(字节大小)缩放图片 public static Bitmap fitSizeImg(String path) { if(path == null || path.length()<1 ) return null; File file = new File(path); Bitmap resizeBmp = null; BitmapFactory.Options opts = new BitmapFactory.Options(); // 数字越大读出的图片占用的heap越小 不然总是溢出 if (file.length() < 20480) { // 0-20k opts.inSampleSize = 1; } else if (file.length() < 51200) { // 20-50k opts.inSampleSize = 2; } else if (file.length() < 307200) { // 50-300k opts.inSampleSize = 4; } else if (file.length() < 819200) { // 300-800k opts.inSampleSize = 6; } else if (file.length() < 1048576) { // 800-1024k opts.inSampleSize = 8; } else { opts.inSampleSize = 10; } resizeBmp = BitmapFactory.decodeFile(file.getPath(), opts); return resizeBmp; } opts.inSampleSize 指定加载图片时,按照原尺寸大小的高宽的1/inSampleSize大小缩放。 如果此值大于1,相当于缩小,小于1时放大。 |
相关文章推荐
- Android在加载大图片时,易出现内存溢出的情况 解决方案
- Android加载大量网络图片出现内存溢出的处理
- Android加载图片出现内存溢出的解决
- android中setImageResource加载大图片出现oom解决方案
- Android内存溢出整理总结 OOM(Out Of Memory) 加载的图片太多或图片过大时经常出现OOM问题
- Android加载图片时出现OOM(OutOfMermary)的问题解决方案
- android加载长图片出现Bitmap too large to be uploaded into a texture的解决方案
- Android中setImageResource加载大图片出现oom解决方案
- android中setImageResource加载大图片出现oom解决方案
- Android网络图片加载内存溢出(OOM)解决方案
- Android内存溢出整理总结 OOM(Out Of Memory) 加载的图片太多或图片过大时经常出现OOM问题
- Android GridView加载大量图片时出现OOM情况
- android ImageLoader 混淆加载drawable出现黑色图片的解决方案
- Android加载大背景图或者大量图片时,内存溢出的解决方案
- android中setImageResource加载大图片出现oom解决方案
- android listview异步加载图片问题分析解决方案
- Android加载一张3.4MB的图片,不出现OOM
- Android ListView异步加载图片乱序问题,原因分析及解决方案
- Android加载图片导致内存溢出(Out of Memory异常)
- Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案