1. 程式人生 > >Android回收AnimationDrawable動畫的每一幀的圖片資源,釋放記憶體資源

Android回收AnimationDrawable動畫的每一幀的圖片資源,釋放記憶體資源

/**
 * 回收每一幀的圖片,釋放記憶體資源
 * 取出AnimationDrawable中的每一幀逐個回收,並且設定Callback為null
 */
private static void tryRecycleAnimationDrawable(AnimationDrawable animationDrawable) {
    if (animationDrawable != null) {
        animationDrawable.stop();
        for (int i = 0; i < animationDrawable.getNumberOfFrames(); i++) {
            Drawable frame = animationDrawable.getFrame(i);
            if (frame instanceof BitmapDrawable) {
                ((BitmapDrawable) frame).getBitmap().recycle();
            }
            frame.setCallback(null);
        }
        animationDrawable.setCallback(null);
    }
}

回收完之後可以請求System.gc();回收