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。
本文介绍了如何优化AnimationDrawable的内存使用,通过逐帧回收BitmapDrawable并设置Callback为null来避免内存泄漏。适用于Android开发中需要高效管理动画资源的情景。
2306

被折叠的 条评论
为什么被折叠?



