属性动画也是一个很好的缩放选项,而且非常简单!这是我的代码,用于将布局缩小到0,然后恢复正常。你可以通过简单的修改得到你想要的。
private void anim() {
AnimatorSet set = new AnimatorSet();
ValueAnimator fadeOld = ValueAnimator.ofFloat(1,(float)0);
fadeOld.setDuration(100);
fadeOld.setInterpolator(new AccelerateInterpolator());
fadeOld.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
Float newValue = (Float) valueAnimator.getAnimatedValue();
cardContainer.setScaleX(newValue);
cardContainer.setScaleY(newValue);
cardContainer.setAlpha(newValue);
}
});
ValueAnimator showNew = ValueAnimator.ofFloat(0, 1);
showNew.setDuration(150);
showNew.setInterpolator(new DecelerateInterpolator());
showNew.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
Float newValue = (Float) valueAnimator.getAnimatedValue();
cardContainer.setScaleX(newValue);
cardContainer.setScaleY(newValue);
cardContainer.setAlpha(newValue);
}
});
set.play(fadeOld);
set.play(showNew).after(fadeOld);
set.start();
}