在Android中旋转动画

时间:2015-11-10 14:03:43

标签: android android-animation

我正在尝试旋转一个imageview,我相信我正在做的事情相当丑陋。我正在使用递归方法,从而在达到min时从min缩放到max。

有没有更好的方法来执行旋转?

 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秒钟。这实际上附加到启动器活动。一旦同步webservice返回,我就会通过销毁启动器活动来切换到主要活动。

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

1 个答案:

答案 0 :(得分:2)

在动画资源文件夹中创建一个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" />

比您的活动或您想要的任何地方创建字段Animation scaling

使用scaling = AnimationUtils.loadAnimation(getContext(), R.anim.scaling);

初始化它

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