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; }