gpt4 book ai didi

java - Android:两个 ScaleAnimations 顺序执行

转载 作者:行者123 更新时间:2023-12-01 14:39:44 26 4
gpt4 key购买 nike

我想要垂直缩放 ImageView,等待,然后在同一个 ImageView 上执行另一个缩放。我简化了下面的代码,但这本质上是我想要做的:

ScaleAnimation animate = new ScaleAnimation(1,1,1,2);
animate.setDuration(1000);
animate.fillAfter(true);

ScaleAnimation animateAgain = new ScaleAnimation(1,1,2,1);
animate.setDuration(1000);
animate.fillAfter(true);

view.startAnimation(animate);
view.startAnimation(animateAgain);

我尝试了多种等待第一个动画完成的方法(Thread.sleep等),但似乎没有任何区别。我假设动画是在 onDraw 方法或其他方法中渲染的?我不完全确定缩放动画是如何工作的,所以我无法真正掌握如何解决我的问题。

实现我想要完成的任务的最简单方法是什么?

谢谢大家:)

最佳答案

有几种方法:

附上AnimationListener到你的动画。

ScaleAnimation animate = new ScaleAnimation(1,1,1,2);
animate.setDuration(1000);
animate.fillAfter(true);
animate.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationEnd(Animation animation) {
ScaleAnimation animateAgain = new ScaleAnimation(1,1,2,1);
animateAgain.setDuration(1000);
animateAgain.fillAfter(true);
view.startAnimation(animateAgain);
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationStart(Animation animation) {
}});

view.startAnimation(animate);

或者,您可以为第二个动画设置动画延迟。

ScaleAnimation animateAgain = new ScaleAnimation(1,1,2,1);
animateAgain.setDuration(1000);
animateAgain.fillAfter(true);
animateAgain.setStartOffset(firstAnimationDuration + delay);

关于java - Android:两个 ScaleAnimations 顺序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16093436/

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