gridview里的图片过大,出现oom ,咋样处理呢? android图片gridviewoomimageview 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 InputStream is = this.getResources().openRawResource(R.drawable.pic1); BitmapFactory.Options options=new BitmapFactory.Options(); options.inJustDecodeBounds = false; options.inSampleSize = 2; //width,hight设为原来的二分一 Bitmap btp =BitmapFactory.decodeStream(is,null,options); if(!bmp.isRecycle() ){ bmp.recycle() //回收图片所占的内存 system.gc() //提醒系统及时回收 } imageloader库https://github.com/nostra13/Android-Universal-Image-Loader 只能压缩和及时回收释放内存,捕获oom,Imageloader是下载显示图片,它对oom的处理不一定是你想要的. 有个imageLoader的框架,实在不行你可以压缩一下图片。不过这样会比较耗费机能。。自己权衡吧 1、在onDestroy中做内存回收处理如1楼所说。没看到code里面有回收的处理,每次启动都加载20张图片,图片一般都很大,多启动几次就OOM了。想要进一步优化就需要使用工具把发生OOM时候应用的堆栈保存下来分析。if(!bmp.isRecycle() ){ bmp.recycle() //回收图片所占的内存 system.gc() //提醒系统及时回收 } 2、如果内存正确回收还是有OOM问题就真的需要像4楼说的压缩图片了。 如何实现关机和重启 textview垂直方向自动的滚动 android现在用哪个SDK platform 利用AIDL传输类遇到的问题。 怎么用代码在android中实现蓝牙总是可被发现的设置? ListPreference单项显示两行 opencore 音频输出 onClick事件和onTouch事件共存问题 哪里更改自己写的Shell Command的权限? 讨论可以做安卓软件的技术 Android软键盘问题 Android无屏幕调试
BitmapFactory.Options options=new BitmapFactory.Options();
options.inJustDecodeBounds = false;
options.inSampleSize = 2; //width,hight设为原来的二分一
Bitmap btp =BitmapFactory.decodeStream(is,null,options);
if(!bmp.isRecycle() ){
bmp.recycle() //回收图片所占的内存
system.gc() //提醒系统及时回收
}
if(!bmp.isRecycle() ){
bmp.recycle() //回收图片所占的内存
system.gc() //提醒系统及时回收
}
2、如果内存正确回收还是有OOM问题就真的需要像4楼说的压缩图片了。