作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要减慢 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/
是否可以减慢 setAttribute() 的速度?例如,我有以下代码: function hide(i) { var previewDiv = document.getElementById
我有一个动画,我一直试图放慢速度,但到目前为止我一直没有成功,我尝试了持续时间并在最后添加时间,但动画似乎以相同的速度运行。 任何帮助都会很棒。 $("document").ready(functio
我已经将 Redis 与 Laravel 连接起来用于排队电子邮件,一切都很好......但在开发环境中,我使用 mailtrap.io(免费版)。 问题是 mailtrap 每秒只允许接收 2 封电
我正在尝试使用 canvas 制作一些东西,我可以在其中传递一个数字,该数字等于某个度数 0-360,并且一条线将从其当前位置到我设置的度数的任何位置进行动画处理。 现在,我的路线可以达到我想要的任何
我是一名优秀的程序员,十分优秀!