Skip to content

Commit 7a41dfd

Browse files
author
skykai
committedMar 24, 2016
add singleInterpolator
1 parent dfa45e0 commit 7a41dfd

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed
 

‎sample/src/main/java/com/github/florent37/sample/viewanimator/MainActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import android.view.animation.BounceInterpolator;
1212
import android.view.animation.DecelerateInterpolator;
1313
import android.view.animation.LinearInterpolator;
14+
import android.view.animation.OvershootInterpolator;
1415
import android.widget.ImageView;
1516
import android.widget.TextView;
1617

@@ -169,17 +170,17 @@ protected void animateParallel() {
169170
ViewAnimator.animate(mountain, image)
170171
.dp().translationY(-1000, 0)
171172
.alpha(0, 1)
173+
.singleInterpolator(new OvershootInterpolator())
172174

173175
.andAnimate(percent)
174176
.scale(0, 1)
175177

176178
.andAnimate(text)
177-
.dp().translationY(1000, 0)
178179
.textColor(Color.BLACK, Color.WHITE)
179180
.backgroundColor(Color.WHITE, Color.BLACK)
180181

181182
.waitForHeight()
182-
.interpolator(new AccelerateDecelerateInterpolator())
183+
.singleInterpolator(new AccelerateDecelerateInterpolator())
183184
.duration(2000)
184185

185186
.thenAnimate(percent)

‎viewanimator/src/main/java/com/github/florent37/viewanimator/AnimationBuilder.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class AnimationBuilder {
3030
private final List<Animator> animatorList = new ArrayList<Animator>();
3131
private boolean waitForHeight;
3232
private boolean nextValueWillBeDp = false;
33+
private Interpolator singleInterpolator = null;
3334

3435
/**
3536
* Instantiates a new Animation builder.
@@ -445,6 +446,15 @@ public AnimationBuilder interpolator(Interpolator interpolator) {
445446
return this;
446447
}
447448

449+
public AnimationBuilder singleInterpolator(Interpolator interpolator) {
450+
singleInterpolator = interpolator;
451+
return this;
452+
}
453+
454+
public Interpolator getSingleInterpolator() {
455+
return singleInterpolator;
456+
}
457+
448458
public ViewAnimator accelerate() {
449459
return viewAnimator.interpolator(new AccelerateInterpolator());
450460
}

‎viewanimator/src/main/java/com/github/florent37/viewanimator/ViewAnimator.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package com.github.florent37.viewanimator;
22

3-
import com.nineoldandroids.animation.Animator;
4-
import com.nineoldandroids.animation.AnimatorSet;
5-
import com.nineoldandroids.animation.ValueAnimator;
63
import android.support.annotation.IntDef;
74
import android.support.annotation.IntRange;
85
import android.view.View;
96
import android.view.ViewTreeObserver;
107
import android.view.animation.Interpolator;
118

9+
import com.nineoldandroids.animation.Animator;
10+
import com.nineoldandroids.animation.AnimatorSet;
11+
import com.nineoldandroids.animation.ValueAnimator;
12+
1213
import java.lang.annotation.Retention;
1314
import java.lang.annotation.RetentionPolicy;
1415
import java.util.ArrayList;
@@ -68,6 +69,12 @@ public AnimationBuilder addAnimationBuilder(View... views) {
6869
protected AnimatorSet createAnimatorSet() {
6970
List<Animator> animators = new ArrayList<>();
7071
for (AnimationBuilder animationBuilder : animationList) {
72+
List<Animator> animatorList = animationBuilder.createAnimators();
73+
if (animationBuilder.getSingleInterpolator() != null) {
74+
for (Animator animator : animatorList) {
75+
animator.setInterpolator(animationBuilder.getSingleInterpolator());
76+
}
77+
}
7178
animators.addAll(animationBuilder.createAnimators());
7279
}
7380

0 commit comments

Comments
 (0)
Please sign in to comment.