Android学习 ——引用图片导致内存溢出java.lang.OutOfMemoryError
2015-03-27 20:18
441 查看
今天遇到这个问题就是从一个输入流里调用BitmapFactory.decodeFile(name)得到一个bitmap报的错。第一次调用都没问题,第二次再次调用就会报上面那个内存溢出的问题。而且有的手机报有的手机不报。研究了半天终于解决。首先分析了下原因,应该是图片占用的内存超过了系统虚拟机可分配的最大限制。不同手机可能分配的最大值不一样。后来找到解决办法主要是设置BitmapFactory.Options。
有的说要加上bitmapOptions.inJustDecodeBounds = true;但是我加上后得到的bitmap就为null。去掉之后就可以。按照上面的方法就解决问题了。最好把bitmap在不用的时候回收一下:
if (bitmap != null && !bitmap.isRecycled())
bitmap.recycle();
BitmapFactory.Options option = new BitmapFactory.Options(); option.inSampleSize = 4; try { Bitmap bmp = BitmapFactory.decodeFile(Path,option); holder.icon.setImageBitmap(bmp); } catch (OutOfMemoryError err) {}
有的说要加上bitmapOptions.inJustDecodeBounds = true;但是我加上后得到的bitmap就为null。去掉之后就可以。按照上面的方法就解决问题了。最好把bitmap在不用的时候回收一下:
if (bitmap != null && !bitmap.isRecycled())
bitmap.recycle();
相关文章推荐
- android中避免大图片解析导致内存溢出 OutOfMemoryError的优化方法
- Android加载图片导致内存溢出(Out of Memory异常)
- Android开发中处理图片OOM (OutOfMemoryError) 的若干方法小结
- Android加载大图片不OutOfMemoryError
- android开发步步为营之50:android关于加载大图片java.lang.OutOfMemoryError错误的解决
- Android开发中处理图片OOM (OutOfMemoryError) 的若干方法小结
- Java乔晓松-android中获取图片的缩略图(解决OutOfMemoryError)内存溢出的Bug
- android大图片的处理 解决内存溢出 OutOfMemoryError
- Android 图片大小超过预算的VM:java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- Android加载图片导致内存溢出(Out of Memory异常)
- 【Android】Bitmap加载图片错误 java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- 显示图片列表时出现异常java.lang.OutOfMemoryError或android.view.InflateException: Binary XML file line #98: Error
- 【Android】Bitmap加载图片错误 java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- android利用Bitmap加载图片所遇到的一个奇怪的OOM问题java.lang.OutOfMemoryError
- Android加载图片导致内存溢出(Out of Memory异常)
- Java乔晓松-android中获取图片的缩略图(解决OutOfMemoryError)内存溢出的Bug
- Android加载图片导致内存溢出(Out of Memory异常)
- Android加载图片导致内存溢出(Out of Memory异常)
- android中获取图片的缩略图(解决OutOfMemoryError)内存溢出的Bug
- Android加载图片导致内存溢出(Out of Memory异常)