从AnimationDrawable
来源:
@Override
public boolean setVisible(boolean visible, boolean restart) {
boolean changed = super.setVisible(visible, restart);
if (visible) {
if (changed || restart) {
setFrame(0, true, true);
}
} else {
unscheduleSelf(this);
}
return changed;
}
因此,如果您将 setVisible(false,false) 应用于AnimationDrawable
则动画将停止。但是,当您将其应用于View
. 如果您希望动画顺利进行,请尝试 AnimationDrawable.setVisible(false,false) 如果您希望视图不可见,请不要使其不可见,因为会发生很多 UI 问题。尝试设置Alpha动画,使其透明并设置FillAfter(true)。当动画结束调用视图到setVisibility(View.Invisible)
需要的地方。这可能会给你一些 FPS。但一般要考虑在制作动画时会发生什么 UI 内容。避免 GC 调用并查看失效情况