我想为我的ImageView构建放大和缩小动画,我设置了一个侦听器并将动画RepeatCount设置为无限。ImageView放大,缩小无限动画和onAnimation重复问题
首先我开始放大效果,然后在onAnimationRepeat方法中,我使用布尔值创建缩小部分,我想重新开始放大整个效果。但是在第一次onAnimationRepeat没有被再次调用之后,动画重复播放,但它仍然卡在缩小部分。
我错过了什么?
//image animation
Animation anim = new ScaleAnimation(1.0f, 1.1f, 1.0f, 1.1f);
anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(10000);
zoomIn = true;
// Start animating the image
final ImageView splash = (ImageView) findViewById(R.id.imageView);
splash.startAnimation(anim);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
if(zoomIn) {
Log.w("", "we zoom out, and zoomIn is: " + zoomIn);
Animation anim = new ScaleAnimation(1.1f, 1f, 1.1f, 1f);
anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(10000);
splash.startAnimation(anim);
zoomIn = false;
} else if(!zoomIn) {
Log.w("", "we zoom in, and zoomIn is: " + zoomIn);
Animation anim = new ScaleAnimation(1.0f, 1.1f, 1.0f, 1.1f);
anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(10000);
splash.startAnimation(anim);
zoomIn = true;
}
}
});
}
应该有'scaleAnim.start()的调用;在'结束。 'setRepeatCount'和'setRepeatMode'是'ObjectAnimator'的方法,而不是'AnimatorSet'。 –