我有几个Views在页面上。每一个动画在前一个之后都是必要的。
( 1)我以为每个动画都会延迟,但在我看来,这个选项是不正确的。
2)对于Listener中的onAnimationEnd()方法中的每个动画,我调用下一个动画。我从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和动画队列结合起来的,也许还有其他我不知道的解决方案?
发布于 2019-02-10 07:05:53
如果动画长度相同,您可以尝试这样的方法:
ArrayList<View> views = new ArrayList<>(3);
int delay = 0;
for(View view : views){
view.animatate....setStartDelay(delay);
delay += 1000;
}您的动画没有理由不立即启动,我编写了一个自定义数字旋转器视图,它得到一个类似于1000的数字,使用这种方法从0到1000,例如,使用2000动画,没有lag.Check动画,并确保它们没有问题,您定义的xml和forgot.If的启动没有延迟,您想要确保这是动画的一个问题,而资源只是使用:
默认情况下,它有您所有的动画,只需选择几个并对其进行测试。
https://stackoverflow.com/questions/54613957
复制相似问题