Анимация стека карт - PullRequest
       6

Анимация стека карт

0 голосов
/ 30 апреля 2018

В моей деятельности у меня есть два просмотра карт, один для входа и один для регистрации. Они в стеке. Когда я нажимаю на любую из карт, она должна анимироваться следующим образом: https://mir -s3-cdn-cf.behance.net / project_modules / max_1200 / 82e47d53917017.5971cd622e847.gif

Я использую анимацию стека для достижения этой цели, но она не работает должным образом. Так может кто-нибудь помочь мне в достижении этого,

 stackAnimation.animateStacks(cardViewSignUp, cardViewSignIn, AppConstants.ANIMATION_END_SCALE);

Это мой класс StackAnimation,

public class StackAnimation {
private int duration;
private float startScale;
private float pivot;

public StackAnimation(int duration, float startScale, float pivot) {
    this.duration = duration;
    this.startScale = startScale;
    this.pivot = pivot;
}

public void animateStacks(CardView cardViewFront, CardView cardViewBack,
                          float endScale) {
    cardViewBack.bringToFront();
    scaleView(cardViewBack, startScale, endScale, startScale, endScale);
    scaleView(cardViewFront, startScale, startScale - (endScale - startScale), startScale, startScale - (endScale - startScale));
}

private void scaleView(View view, float startScaleY, float endScaleY, float startScaleX,
                       float endScaleX) {
    Animation anim = new ScaleAnimation(
            startScaleX, endScaleX, // Start and end values for the X axis scaling
            startScaleY, endScaleY, // Start and end values for the Y axis scaling
            Animation.RELATIVE_TO_PARENT, pivot, // Pivot point of X scaling
            Animation.RELATIVE_TO_PARENT, pivot); // Pivot point of Y scaling
    anim.setFillAfter(true); // Needed to keep the result of the animation
    anim.setDuration(duration);
    view.startAnimation(anim);
}
}
...