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);
}
}
取出AnimationDrawable中的每一帧逐个回收,并且设置Callback为null。