记录帖:
3d翻转动画比较常用,记录方便下次使用:
private Interpolator accelerator = new AccelerateInterpolator();
private Interpolator decelerator = new DecelerateInterpolator();
private void flipit() {
if (mapView.getVisibility() == View.GONE) {
ObjectAnimator visToInvis = ObjectAnimator.ofFloat(listView, "rotationY", 0f, 90f);
visToInvis.setDuration(500);
visToInvis.setInterpolator(accelerator);
final ObjectAnimator invisToVis = ObjectAnimator
.ofFloat(mapView, "rotationY", -90f, 0f);
invisToVis.setDuration(500);
invisToVis.setInterpolator(decelerator);
visToInvis.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator anim) {
listView.setVisibility(View.INVISIBLE);
invisToVis.start();
mapView.setVisibility(View.VISIBLE);
}
});
visToInvis.start();
} else {
ObjectAnimator visToInvis = ObjectAnimator.ofFloat(mapView, "rotationY", 0f, 90f);
visToInvis.setDuration(500);
visToInvis.setInterpolator(accelerator);
final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(listView, "rotationY", -90f,
0f);
invisToVis.setDuration(500);
invisToVis.setInterpolator(decelerator);
visToInvis.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator anim) {
mapView.setVisibility(View.GONE);
invisToVis.start();
listView.setVisibility(View.VISIBLE);
}
});
visToInvis.start();
}
}