package com.tv.ui.metro.utils; import android.os.Build; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ImageView; @SuppressWarnings("deprecation") public final class ViewUtils { //release all image resource from view public static void unbindDrawables(View view) { if (null == view) { return; } if (view.getBackground() != null) { view.getBackground().setCallback(null); if(Build.VERSION.SDK_INT >= 16) view.setBackground(null); else view.setBackgroundDrawable(null); } if(view instanceof ImageView){ ImageView imageView = (ImageView)view; if(imageView.getDrawable() != null){ imageView.getDrawable().setCallback(null); imageView.setImageDrawable(null); } } if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { unbindDrawables(((ViewGroup) view).getChildAt(i)); } if (!(view instanceof AdapterView<?>)) { ((ViewGroup) view).removeAllViews(); } } } private ViewUtils() { } }