回收ImageView佔用的映像記憶體,imageview佔用映像
使用方法: RecycleBitmap.recycleImageView(mSelectorView); 參數為imageview
/**
* 回收ImageView佔用的映像記憶體;
* 使用了本方法之後,記得用一下
* System.gc(); 提醒系統及時回收
* @param view
* 在setImageResource()方法前面還沒有bitmap,圖片可以出來。
* 在其後面執行本方法的話,圖片就不會顯示出來。
* 在setImageBitmap()方法的前面還沒有bitmap,圖片可以出來。
* 在其後面執行本方法的話,圖片就不會顯示出來。
* 最好在onDestroy方法中執行本方法
*/
public static void recycleImageView(View view){ if(view==null) return; if(view instanceof ImageView){ Drawable drawable=((ImageView) view).getDrawable(); if(drawable instanceof BitmapDrawable){ Bitmap bmp = ((BitmapDrawable)drawable).getBitmap(); if (bmp != null && !bmp.isRecycled()){ ((ImageView) view).setImageBitmap(null); bmp.recycle(); log("have recycled ImageView Bitmap"); bmp=null; } } } }
使用方法: RecycleBitmap.recycleBitmap(mNo_shop1Bitmap); 參數為bitmap
/**
* 可以釋放到Bitmap在C層申請的記憶體,recycle方法會把一些相關的引用計數置0.
* 回收Bitmap佔用的映像記憶體;
* 使用了本方法之後,記得用一下
* System.gc(); 提醒系統及時回收
* @param bitmap
* 在setImageBitmap()方法的前面和後面都會報異常,最好在onDestroy方法中執行
* RuntimeException:trying to use a recycled bitmap android.graphics.Bitmap@41c124e8
*/
public static void recycleBitmap(Bitmap bitmap){ if(bitmap!=null&&!bitmap.isRecycled()){ bitmap.recycle() ; //回收圖片所佔的記憶體 log("have recycled Bitmap"); bitmap=null; } }