关于Bitmap 导致的OOM 解决方案
来源:互联网 发布:汇编语言和c语言 编辑:程序博客网 时间:2024/05/17 22:33
相机越来越好,相片也越来越大, 而手机应用程序所分配的内存有限, 所以在读相片的时候,如果代码写得不好,经常导致OOM. 信息如下:
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
基本上要注意几个地方:
1 bitmap如果不用了,回收掉
protected void onDestroy() {super.onDestroy();if(bmp1 != null){bmp1.recycle();bmp1 = null;}if(bmp2 != null){bmp2.recycle();bmp2 = null;}}
2 先算出该bitmap的大小,然后通过调节采样率的方式来规避
BitmapFactory.Options opts = new BitmapFactory.Options();opts.inJustDecodeBounds = true;BitmapFactory.decodeFile(imageFile, opts);opts.inSampleSize = computeSampleSize(opts, minSideLength, maxNumOfPixels);opts.inJustDecodeBounds = false;try {return BitmapFactory.decodeFile(imageFile, opts);} catch (OutOfMemoryError err) {}return null;
3 在进行文件传输时,最好采用压缩的方式变成byte[]再传输
public static byte[] bitmap2Bytes(Bitmap bm) {ByteArrayOutputStream baos = new ByteArrayOutputStream();bm.compress(Bitmap.CompressFormat.JPEG, 90, baos);return baos.toByteArray();}
附件地址:http://download.csdn.net/detail/gdp2852/3862157
为使附件的demo能顺利运行,请在SD卡新建一个photo文件夹,并放上7张大相片,依次命名为img1-img7即可。
- 关于Bitmap 导致的OOM 解决方案
- android 关于listview bitmap导致的oom解决方案
- Bitmap导致的OOM 终极解决方案
- Bitmap导致的OOM 终极解决方案
- Bitmap导致的OOM 一些解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于bitmap加载图片产生OOM的一个解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- 关于android 使用bitmap的OOM心得和解决方案
- Bitmap OOM解决方案
- Android 关于OOM的解决方案
- Android 关于OOM的解决方案
- Android 关于OOM的解决方案
- Drupal的开源经济体系
- 项目管理小故事之这是为什么
- 探索C++的秘密之详解extern "C"
- RGB颜色表颜色 与 GdkColor关系。
- Drupal的发行版
- 关于Bitmap 导致的OOM 解决方案
- 丰富Putty的窗口标题内容
- 澄清:make oldconfig
- Drupal学习资源
- distinct去掉mysql中重复字段值
- Python fnmatch — Unix filename pattern matching
- Drupal的交互性
- 项目管理小故事之小矮人的故事
- 使用HTML5进行地理位置定位