gpt4 book ai didi

android - alpha 淡化动画只工作一次,当另一个 View 的自下而上动画在 Android 中完成时

转载 作者:行者123 更新时间:2023-11-30 01:10:17 24 4
gpt4 key购买 nike

我正在为石头图像使用从下到上的动画。我希望动画延迟 2 秒开始,并在 1.5 秒内结束。
除此之外,我还想展示一个在 2 秒内从 alpha = 0 到 alpha = 1 的扬尘图像。我使用了 AnimationUtil.loadAnimation()。

石头动画完成后,我希望灰尘图像在 2 秒内从 alpha 1 变为 alpha 0。我在 onAnimationEnd() 方法中这样做。第一次一切运行良好。但是第二次,灰尘图像立即消失。那里没有 alpha 动画。

附源码:

private void showAnimation(Context context){
final FrameLayout stone = (FrameLayout) (view.findViewById(R.id.Stone));
stone.setVisibility(View.VISIBLE);

final FrameLayout dust = (FrameLayout) (view.findViewById(R.id.img_Dust));
dust.setVisibility(View.VISIBLE);
dust.animate().alpha(1f).setDuration(1500);



final Animation slideUp = AnimationUtils.loadAnimation(context,R.anim.stone_up);

slideUp.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
stone.setVisibility(View.GONE);


dust.animate().alpha(0f).setDuration(2000).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);

dust.setVisibility(View.GONE);

}
});
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationStart(Animation animation) {

}
});
stone.setAnimation(slideUp);
}

最佳答案

只需在 onAnimationEnd(Animation 动画) 的下面几行。

if(stone.getVisibility() ==  View.GONE) {
dust.setVisibility(View.GONE);
}

希望,它会起作用。

关于android - alpha 淡化动画只工作一次,当另一个 View 的自下而上动画在 Android 中完成时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38486407/

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