我正在尝试旋转一个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返回,我就会通过销毁启动器活动来切换到主要活动。
是的,是的。有没有更好的方法来实现旋转?答案 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();