代码如下 直接使用工具类:
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.view.View;
import android.view.animation.OvershootInterpolator;
public class AnimUtil {
public static void FlipAnimatorXViewShow(final View oldView, final View newView, final long time) {
ObjectAnimator animator1 = ObjectAnimator.ofFloat(oldView, "rotationY", 0, -90);
final ObjectAnimator animator2 = ObjectAnimator.ofFloat(newView, "rotationY", 90, 0);
animator2.setInterpolator(new OvershootInterpolator(2.0f));
animator1.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
oldView.setVisibility(View.GONE);
animator2.setDuration(time).start();
newView.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
animator1.setDuration(time).start();
}
}
以上为左右翻转,当然如果需要上下翻转的话,您可以使用以下代码
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.view.View;
import android.view.animation.OvershootInterpolator;
public class AnimUtil {
public static void FlipAnimatorXViewShow(final View oldView, final View newView, final long time) {
ObjectAnimator animator1 = ObjectAnimator.ofFloat(oldView, "rotationX", 0, 90);
final ObjectAnimator animator2 = ObjectAnimator.ofFloat(newView, "rotationX", -90, 0);
animator2.setInterpolator(new OvershootInterpolator(2.0f));
animator1.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
oldView.setVisibility(View.GONE);
animator2.setDuration(time).start();
newView.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
animator1.setDuration(time).start();
}
}
当然这些代码还不能满足您的需求,那么您必须要改代码了 ��~~~~
如何使用呢?
很简单:
AnimUtil.FlipAnimatorXViewShow(iv_new, iv_old,500);
相信您一定能做的很好的 ,加油~~~~~