gpt4 book ai didi

java - View 动画队列

转载 作者:行者123 更新时间:2023-11-30 05:05:50 25 4
gpt4 key购买 nike

我在页面上有一些 Views。每个动画都必须在前一个动画之后。

1)我想过为每个动画做延迟,但在我看来这个选项是不正确的。

2) 对于 onAnimationEnd() 方法中 Listener 中的每个动画,我调用下一个动画。我从 xml 获取动画。在这个决定中,我注意到下一个动画不会立即起作用。我有一个 8-10 个 Views 并为每个人实现 Listener,它也不知何故不能正常工作。

只有3个View,而且占用了这么多空间:

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;
}

没有理由你的动画没有立即开始我写了一个自定义数字微调器 View ,它得到一个像 1000 这样的数字,使用这种方法从 0 到 1000 例如,使用 2000 个动画没有滞后。检查你的动画和确保它们没问题,没有延迟和您定义和忘记的 xml 的开始。如果您想确保这是您的动画和资源的问题,请使用:

https://github.com/daimajia/AndroidViewAnimations

它默认包含所有动画,只需选择几个并进行测试即可。

关于java - View 动画队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54613957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com