自定义dialog消失动画,对话框添加购物车飞入动画
程序员文章站
2022-07-02 14:55:13
...
动画缩放飞入关键代码:
ObjectAnimator animatorScaleX = ObjectAnimator.ofFloat(mView, "scaleX", 1.0f, 0.1f);
ObjectAnimator animatorScaleY = ObjectAnimator.ofFloat(mView, "scaleY", 1.0f, 0.1f);
ObjectAnimator animatorX = ObjectAnimator.ofFloat(mView, "translationY", 0, UiUtils.getScreenHeight() / 2 - (int) (UiUtils.dp2px(25) + 0.5));
ObjectAnimator animatorY = ObjectAnimator.ofFloat(mView, "translationX", 0, -(UiUtils.getScreenWidth() / 2 - (int) (UiUtils.dp2px(20) + 0.5)));
ObjectAnimator animatorRotation = ObjectAnimator.ofFloat(mView, "rotation", 0, 720);
AnimatorSet set = new AnimatorSet();
animatorScaleX.setInterpolator(new LinearInterpolator());
animatorScaleY.setInterpolator(new LinearInterpolator());
set.play(animatorX).with(animatorY).with(animatorRotation).after(animatorScaleX).after(animatorScaleY);
// set.playTogether(animatorX, animatorY, animatorRotation, animatorScaleX, animatorScaleY);
set.setDuration(250);
set.start();
set.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
if (mView != null)
mainLayout.removeView(mView);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
效果展示图:
源码链接地址:https://github.com/pingcc/AnimalSetApplication