我在页面上有一些Views
。有必要在前一个之后进行每个动画处理。
1(我认为每个动画都会延迟,但在我看来,此选项不正确。
2( 对于 onAnimationEnd()
方法中Listener
中的每个动画,我调用下一个动画。我从xml
那里获取动画.在这个决定中,我注意到下一个动画不会立即起作用。而且我有一个 8-10 Views
,让每个人都实施Listener
,它也以某种方式不能干净地工作。
只有 3 Views
,它占用了如此多的空间:
mLogo.startAnimation(zoomInAnim);
zoomInAnim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
mPackage.setVisibility(View.VISIBLE);
mPackageBack.setVisibility(View.VISIBLE);
mPackage.startAnimation(slideUpAnim);
mPackageBack.startAnimation(slideUpAnim);
slideUpAnim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
mImage1.setVisibility(View.VISIBLE);
mImage1.startAnimation(slideUpBounceAnim);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
问:你如何将Views
和动画队列结合起来,也许还有其他我不知道的解决方案?
如果您的动画具有相同的长度,您可以尝试这样的事情:
ArrayList<View> views = new ArrayList<>(3);
int delay = 0;
for(View view : views){
view.animatate....setStartDelay(delay);
delay += 1000;
}
您的动画没有理由不立即开始 我编写了一个自定义数字微调器视图,它得到一个像 1000 这样的数字,使用这种方法从 0 到 1000 例如,使用 2000 个动画没有延迟。检查您的动画并确保它们没问题,没有延迟和您定义和忘记的 xml 的开始。如果你想确保这是你的动画和资源的问题,只需使用:
https://github.com/daimajia/AndroidViewAnimations
默认情况下,它包含所有动画,只需选择几个并对其进行测试即可。