/**
* 모든 image view의 bitmap 비우기
*
* @param viewGroup layout
*/
public static void recycleAllImageBitmap(ViewGroup viewGroup) {
int count = viewGroup.getChildCount();
for (int i = 0; i < count; i++) {
if (viewGroup.getChildAt(i) instanceof ViewGroup) {
recycleAllImageBitmap((ViewGroup) viewGroup.getChildAt(i));
}
else {
View v = viewGroup.getChildAt(i);
if (v instanceof ImageView) {
recycleImageView(((ImageView) v));
}
}
}
}
/**
* ImageView bitmap 비우기
*
* @param iv
*/
public static void recycleImageView(ImageView iv) {
try {
iv.setImageBitmap(null);
} catch (Exception e) {
}
try {
iv.setImageResource(android.R.color.transparent);
} catch (Exception e) {
}
try {
iv.setImageDrawable(null);
} catch (Exception e) {
}
try {
iv.setBackgroundResource(android.R.color.transparent);
} catch (Exception e) {
}
try {
iv.setBackground(null);
} catch (Exception e) {
}
try {
iv.setBackgroundColor(Color.TRANSPARENT);
} catch (Exception e) {
}
try {
iv.destroyDrawingCache();
} catch (Exception e) {
}
try {
iv.destroyDrawingCache();
} catch (Exception e) {
}
}
picasso 를 쓰지만, onDestroy 에서 이 것도 호출하고 있어요.
UIUtil.recycleAllImageBitmap((ViewGroup) ((ViewGroup) this.findViewById(android.R.id.content)).getChildAt(0));