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 が発生するため、非表示にしないでください。アルファ アニメーションを設定し、透明にして、FillAfter(true) を設定してみてください。アニメーションが終了すると、ビューsetVisibility(View.Invisible)
が必要な場所に呼び出されます。これにより、おそらくFPSが得られます。ただし、一般的には、アニメーション化するときに UI がどのように発生するかを全体的に検討してください。GC 呼び出しを回避し、無効化を表示する