使用YoYo动画库

首先在Gradle里面引入YoYo

implementation ("com.daimajia.androidanimations:library:2.4@aar")

设置动画类型,时间,循环

import com.daimajia.androidanimations.library.Techniques;
import com.daimajia.androidanimations.library.YoYo;

public void openwan() {
        YoYo.with(Techniques.RollOut)
                .duration(700) //设置执行时间
                .repeat(0) //设置重复次数
                .onEnd(animator -> {
                    // 在动画结束时执行的操作
                    
                })
                .playOn(binding.wan); // 使用YoYo库执行RollOut动画
    }

自定义动画-平移动画

   /**
     * 开盖动画
     *
     * @param gameInsanity 动画目标视图
     * @param init         是否为初始化状态
     */
    public void animateGameInsanity(View gameInsanity, boolean init) {
        AnimatorSet animatorSet = createAnimatorSet(gameInsanity, -210f, 300f, 4f, 3.6f, 700);

            // 添加动画监听器
        animatorSet.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animation) {
            //动画开始时执行
        }

        @Override
        public void onAnimationEnd(Animator animation) {
            //动画结束时执行
        }

        @Override
        public void onAnimationCancel(Animator animation) {
            //动画取消时执行
        }

        @Override
        public void onAnimationRepeat(Animator animation) {
            //动画重复时执行
        }
    });

        animatorSet.start(); // 启动动画
    }

自定义动画-平移缩放动画

   /**
     * 创建一个AnimatorSet,用于组合多个动画
     *
     * @param view         目标视图
     * @param translationX X轴平移
     * @param translationY Y轴平移
     * @param scaleX       X轴缩放
     * @param scaleY       Y轴缩放
     * @param duration     动画持续时间
     * @return AnimatorSet 对象
     */
    private AnimatorSet createAnimatorSet(View view, float translationX, float translationY, float scaleX, float scaleY, int duration) {
        ObjectAnimator moveX      = ObjectAnimator.ofFloat(view, "translationX", translationX);
        ObjectAnimator moveY      = ObjectAnimator.ofFloat(view, "translationY", translationY);
        ObjectAnimator scaleXAnim = ObjectAnimator.ofFloat(view, "scaleX", scaleX);
        ObjectAnimator scaleYAnim = ObjectAnimator.ofFloat(view, "scaleY", scaleY);

        AnimatorSet animatorSet = new AnimatorSet();
        animatorSet.playTogether(moveX, moveY, scaleXAnim, scaleYAnim); // 同时播放所有动画
        animatorSet.setDuration(duration); // 设置动画持续时间
        animatorSet.setInterpolator(new DecelerateInterpolator()); // 设置插值器

        return animatorSet;
    }