В моей деятельности у меня есть два просмотра карт, один для входа и один для регистрации.
Они в стеке. Когда я нажимаю на любую из карт, она должна анимироваться следующим образом:
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);
}
}