Android图片翻转动画简易实现代码


要实现Android中图片的翻转动画,可以使用`ObjectAnimator`来简单实现。以下是一个示例代码,展示了如何对一个`ImageView`执行翻转动画(从正面翻转到背面)。注意,这个例子假设你已经有一个`ImageView`在你的布局文件中,并且你想要翻转的图片已经被设置到了这个`ImageView`上。


import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;

public class ImageFlipActivity extends AppCompatActivity {

    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_flip); // 确保你的布局文件名与这里相匹配

        imageView = findViewById(R.id.image_view); // 替换R.id.image_view为你的ImageView的ID

        // 定义点击事件(这里假设是通过点击来触发翻转动画)
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 使用ObjectAnimator实现翻转动画
                // 注意:这里的rotationY表示绕Y轴旋转,从0度到180度或-180度实现翻转效果
                ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "rotationY", 0f, 180f);
                animator.setDuration(1000); // 设置动画持续时间,例如1000毫秒
                animator.setInterpolator(android.view.animation.AccelerateDecelerateInterpolator()); // 设置动画插值器
                animator.start(); // 开始动画

                // 如果需要监听动画结束进行反向翻转,可以使用addListener
                animator.addListener(new android.animation.AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(android.animation.Animator animation) {
                        super.onAnimationEnd(animation);
                        // 动画结束后执行的操作,如果需要回到初始状态可以再次启动反向翻转动画
                        ObjectAnimator reverseAnimator = ObjectAnimator.ofFloat(imageView, "rotationY", 180f, 0f);
                        reverseAnimator.setDuration(1000);
                        reverseAnimator.start();
                    }
                });
            }
        });
    }
}

在这段代码中,我们创建了一个`ImageView`的点击事件监听器,在点击时触发一个绕Y轴旋转的动画,使图片从正面翻转到背面。同时,我们也添加了一个动画监听器,当动画结束时执行反向翻转的动画,从而使图片从背面翻转回正面。这只是一个基础示例,你可以根据需求调整动画的参数,如持续时间、插值器等。