在android开发过程当中,如果要用到大量图片而你又没有做好图片内存的回收,很容易就会造成OOM内存溢出的问题。下面介绍一种图片内存回收的方法,就是将图片从添加到的ViewGroup中一张一张拿出来回收,具体代码如下:

privatevoidrecycleBitmap()

{

if(viewGroup!=null)

{

intcount=viewGroup.getChildCount;

for(inti=0;i<count;i++)

{

Viewview=viewGroup.getChildAt(i);

ImageViewimg=(ImageView)view.findViewById(R.id.Image);

if(img!=null)

{

Drawabledrawable=img.getDrawable();

if(drawable!=null)

{

if(drawableinstanceofBitmapDrawable)

{

BitmapDrawablebitmapDrawable=(BitmapDrawable)drawable;

Bitmapbitmap=bitmapDrawable.getBitmap();

if(bitmap!=null)

bitmap.recycle();

}

}

}

}

}

}

其中的ViewGroup可以是ViewFlipper、ViewPager等等继承自ViewGroup的子类

有 时一个activityfinish退出程序后重新进入会报oom内存溢出强制关闭程序这是因为activity虽然已经destroy掉了但它所占有 的内存还没有释放,这时你要看下是不是哪个ViewGroup添加了许多图片没有释放,你可以在onDestroy中将ViewGroup中的 viewremove掉ViewGroup.removeAllViews()就可以了。

更多相关文章

  1. Context引发的内存泄漏
  2. Android之获取手机上的图片和视频缩略图thumbnails
  3. Android "无法查看***。请释放部分手机内存"
  4. Android加载SD卡目录,文件夹遍历,图片设置,设置文件对应打开方式等
  5. Android Bitmap 内存以及OOM问题讨论
  6. 73、ImageView 让图片填充满
  7. [置顶] 如何修改Android应用程序能够使用的默认最大内存值

随机推荐

  1. android与Unity3D之间的相爱相杀
  2. Android(安卓)API Guides---ExoPlayer Su
  3. ReactNative Android/iOS 打包详情流程
  4. Android 平铺背景图片
  5. android中跳转系统自带的界面
  6. Android开发周刊 第一期
  7. 【Android】Android 彩信发送的两种方式+
  8. android修改手机默认音量配置
  9. Android中调用天气预报
  10. Android资料链接保存