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楼说的压缩图片了。 基于Android wifi和Sensors的室内定位算法研究、实现 read 读取0字节产生 unexpected end of stream问题 调研日本android软件 Android数据库问题 向各位大虾取经:希望大家热心推荐一下android游戏开发的资料 如何做出这样的弹出式菜单? 安卓截屏异常 关于安卓图层的问题 android4.2的Launcher2有谁做过循环滑动吗,或者android4.4的Launcher3也行 用Genymotion不能运行程序!急! 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楼说的压缩图片了。