【发布时间】:2013-04-25 14:20:16
【问题描述】:
我正在尝试在蜂窝设备上一个接一个地播放动画。
我尝试使用 AnimationSet 和每个动画的 startOffset 值一个接一个地播放动画,但没有运气。
我也尝试创建一个新类来管理动画以一个接一个地开始,但它也不起作用。
代码如下:
public class AnimationChain {
private final List<Animation> mAnimations = new ArrayList<Animation>();
private AnimationListener mAnimationListener;
private final View mViewToAnimate;
public AnimationChain(final View viewToAnimate) {
this.mViewToAnimate = viewToAnimate;
}
public void addAnimation(final Animation animation) {
mAnimations.add(animation);
}
public void setAnimationListener(final AnimationListener animationListener) {
this.mAnimationListener = animationListener;
}
public List<Animation> getAnimations() {
return this.mAnimations;
}
public Animation getLastAnimation() {
final int size = mAnimations.size();
if (size == 0)
return null;
return mAnimations.get(size - 1);
}
public void startAnimations() {
if (mAnimations.size() == 0)
return;
for (int i = 0; i < mAnimations.size(); ++i) {
final Animation currentAnimation = mAnimations.get(i);
final Animation nextAnimation;
if (i != mAnimations.size() - 1)
nextAnimation = mAnimations.get(i + 1);
else
nextAnimation = null;
currentAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(final Animation animation) {
if (mAnimationListener != null)
mAnimationListener.onAnimationStart(animation);
}
@Override
public void onAnimationRepeat(final Animation animation) {
if (mAnimationListener != null)
mAnimationListener.onAnimationRepeat(animation);
}
@Override
public void onAnimationEnd(final Animation animation) {
if (mAnimationListener != null)
mAnimationListener.onAnimationEnd(animation);
if (nextAnimation != null)
mViewToAnimate.startAnimation(nextAnimation);
}
});
}
final Animation firstAnimation = mAnimations.get(0);
mViewToAnimate.startAnimation(firstAnimation);
}
}
似乎它确实调用了下一个动画开始,但它没有做任何我能看到的事情。不过,使用单个动画对任何动画都适用。
谁能帮帮我?我做错了什么?
另外,如果我尝试使用蜂窝版本及以上版本,这个问题还会存在吗?我将如何处理它?也许使用9-old-android library 可以提供帮助?
【问题讨论】:
-
怎么样?我还需要使用曲线动画(比如这个:stackoverflow.com/a/11076492/878126)
-
首先我想知道我的代码出了什么问题,以及我应该如何在没有库的情况下完成它。
标签: android animation android-animation chain