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

private void recycleBitmap( ){   if(viewGroup != null)   {         int count =  viewGroup.getChildCount;         for(int i=0; i <count; i++ )          {             View view = viewGroup.getChildAt(i);             ImageView img = (ImageView)view.findViewById(R.id.Image);              if(img != null)               {                   Drawable drawable = img.getDrawable( );                   if(drawable != null)                    {                            if(drawable instanceof BitmapDrawable)                             {                               BitmapDrawable bitmapDrawable = (BitmapDrawable)drawable;                                Bitmap bitmap = bitmapDrawable.getBitmap( );                                if(bitmap != null)                                   bitmap.recycle( );                              }                     }       }             }  } }


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

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

更多相关文章

  1. Android开发学习笔记(八)Android应用界面编程 ImageView学习
  2. Android(安卓)开发技术周报 Issue#281
  3. Android修改原生RatingBar颜色、大小,以及自定义的样式
  4. Android(安卓)application context/activity context与内存泄露(
  5. Android分析之LowMemoryKiller
  6. 浅谈android的selector背景选择器
  7. Android(安卓)显示网络图片
  8. 在控件的任意位置显示图片
  9. [置顶] 我的Android进阶之旅------>Android之选项卡(TabHost)的

随机推荐

  1. 【Android Training - 00】Google Androi
  2. Android之玩转View
  3. android 专家blog备份
  4. android widget开发点滴
  5. 初学Android,跨进程调用Service(六十)
  6. Android自定义ScrollView实现反弹效果
  7. Google主推-Android开发利器——Android
  8. Android BaiduAi 人脸识别 集成教学 实战
  9. 开发一个android app需要的技术
  10. Android(安卓)ContentProvider的线程安全