Fixing AVD animation with startOffset
b/17160751 Change-Id: If030ca04f5a7dd7e732dcc5dfb18d51faa7e7b79
This commit is contained in:
@@ -152,7 +152,7 @@ public class AnimatedVectorDrawable extends Drawable implements Animatable {
|
||||
@Override
|
||||
public void draw(Canvas canvas) {
|
||||
mAnimatedVectorState.mVectorDrawable.draw(canvas);
|
||||
if (isRunning()) {
|
||||
if (isStarted()) {
|
||||
invalidateSelf();
|
||||
}
|
||||
}
|
||||
@@ -306,13 +306,25 @@ public class AnimatedVectorDrawable extends Drawable implements Animatable {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isStarted() {
|
||||
final ArrayList<Animator> animators = mAnimatedVectorState.mAnimators;
|
||||
final int size = animators.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
final Animator animator = animators.get(i);
|
||||
if (animator.isStarted()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
final ArrayList<Animator> animators = mAnimatedVectorState.mAnimators;
|
||||
final int size = animators.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
final Animator animator = animators.get(i);
|
||||
if (!animator.isRunning()) {
|
||||
if (!animator.isStarted()) {
|
||||
animator.start();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user