diff --git a/graphics/java/android/graphics/drawable/AnimationDrawable.java b/graphics/java/android/graphics/drawable/AnimationDrawable.java index 5318fa7b0c948..d87e8e4075a93 100644 --- a/graphics/java/android/graphics/drawable/AnimationDrawable.java +++ b/graphics/java/android/graphics/drawable/AnimationDrawable.java @@ -114,7 +114,9 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An final boolean changed = super.setVisible(visible, restart); if (visible) { if (restart || changed) { - setFrame(restart ? 0 : mCurFrame, true, mAnimating); + boolean startFromZero = restart || mCurFrame < 0 || + mCurFrame >= mAnimationState.getChildCount(); + setFrame(startFromZero ? 0 : mCurFrame, true, mAnimating); } } else { unscheduleSelf(this);