android 釋放圖片資源

1.1 主動釋放Bitmap資源佈局

+當你肯定這個Bitmap資源不會再被使用的時候(固然這個Bitmap不釋放可能會讓程序下一次啓動或者resume快一些,可是其佔用的內存資源太大,可能致使程序在後臺的時候被殺掉,反而得不償失),咱們建議手動調用recycle()方法,釋放其Native內存: if(bitmap != null && !bitmap.isRecycled()){
bitmap.recycle(); bitmap = null; }xml

1.2 主動釋放ImageView的圖片資源圖片

+因爲咱們在實際開發中,不少狀況是在xml佈局文件中設置ImageView的src或者在代碼中調用ImageView.setImageResource/setImageURI/setImageDrawable等方法設置圖像,下面代碼能夠回收這個ImageView所對應的資源:內存

private static void recycleImageViewBitMap(ImageView imageView) { if (imageView != null) { BitmapDrawable bd = (BitmapDrawable) imageView.getDrawable(); rceycleBitmapDrawable(bd); } }資源

private static void rceycleBitmapDrawable(BitmapDrawable bitmapDrawable) { if (bitmapDrawable != null) { Bitmap bitmap = bitmapDrawable.getBitmap(); rceycleBitmap(bitmap); } bitmapDrawable = null; }開發

private static void rceycleBitmap(Bitmap bitmap) { if (bitmap != null && !bitmap.isRecycled()) { bitmap.recycle(); bitmap = null; } }get

1.3 主動釋放ImageView的背景資源it

+若是你的ImageView是有Background,那麼下面的代碼能夠釋放他: public static void recycleBackgroundBitMap(ImageView view) { if (view != null) { BitmapDrawable bd = (BitmapDrawable) view.getBackground(); rceycleBitmapDrawable(bd); } }後臺

public static void recycleImageViewBitMap(ImageView imageView) { if (imageView != null) { BitmapDrawable bd = (BitmapDrawable) imageView.getDrawable(); rceycleBitmapDrawable(bd); } }map

private static void rceycleBitmapDrawable(BitmapDrawable bitmapDrawable) { if (bitmapDrawable != null) { Bitmap bitmap = bitmapDrawable.getBitmap(); rceycleBitmap(bitmap); } bitmapDrawable = null; }

相關文章
相關標籤/搜索