gpt4 book ai didi

android - 旋转动画,放慢速度

转载 作者:行者123 更新时间:2023-11-29 00:22:02 30 4
gpt4 key购买 nike

我需要减慢 ImageView 上的旋转动画:它开始得更快,然后它应该“减速”直到动画结束(然后旋转停止)。我这样写:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<rotate
android:duration="100"
android:fromDegrees="0"
android:interpolator="@android:anim/cycle_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="30"
android:repeatMode="restart"
android:toDegrees="360" />

</set>

然后给动画添加监听器:

Animation rotate = AnimationUtils
.loadAnimation(activity, R.anim.rotate);
ImageView logo = (ImageView) SplashScreen.activity
.findViewById(R.id.logo);


rotate.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationEnd(Animation animation) {
Intent intent = new Intent(SplashScreen.this,
LoginActivity.class);
SplashScreen.this.startActivity(intent);

}

@Override
public void onAnimationRepeat(Animation animation) {
if(animation.getRepeatCount() == 5) {
animation.setDuration(200);
} else if (animation.getRepeatCount() == 10) {
Log.i("ANIM", "10");
animation.setDuration(5000);
} else if (animation.getRepeatCount() == 15) {
animation.setDuration(800);
} else if (animation.getRepeatCount() == 20) {
animation.setDuration(1600);
} else if (animation.getRepeatCount() == 25) {
animation.setDuration(2000);
}

}

});

logo.setAnimation(rotate);
logo.startAnimation(rotate);

但动画始终具有相同的速度(代码永远不会进入 onAnimationRepeat)。怎么了?

最佳答案

简单使用

android:interpolator="@android:anim/decelerate_interpolator"

在您的动画 xml 文件中。 检查此链接以获取其他插值器 http://developer.android.com/reference/android/view/animation/package-summary.html还加了

android:repeatCount="1"

因为默认是0。

关于android - 旋转动画,放慢速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22408904/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com