android 中的旋转动画

Spin animation in android

我正在尝试旋转 imageview,我认为我这样做的方式相当丑陋。我正在使用递归方法,在达到最小值时从最小值扩展到最大值。

有没有更好的旋转方式?

 private void spinLogo(boolean scaleUp)
{

    if(scaleUp) {
        mLogo.animate().scaleX(1f).setInterpolator(new OvershootInterpolator()).setDuration(200).withEndAction(new Runnable() {
            @Override
            public void run() {
                spinLogo(false);
            }
        });
    }
    else
    {
        mMolLogo.animate().scaleX(0f).setInterpolator(new OvershootInterpolator()).setDuration(1000).withEndAction(new Runnable() {
            @Override
            public void run() {
                spinLogo(true);
            }
        });
    }
}

我目前不关心这个动画的终止。此动画最多 运行 5 秒。这实际上附加到启动器 activity 。一旦同步网络服务 returns ,我就会通过破坏启动器 activity.

来切换到主 activity

所以是的。有没有更好的方法来实现旋转?

在动画资源文件夹中创建一个 xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fromXScale="0"
    android:fromYScale="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:repeatMode="reverse"
    android:toXScale="1.0"
    android:toYScale="1.0" />

比在你的 activity 或任何你想创建字段的地方 Animation scaling

初始化为scaling = AnimationUtils.loadAnimation(getContext(), R.anim.scaling);

使用 view.startAnimation(scaling); 设置动画。停止动画调用 view.clearAnimation();