gpt4 book ai didi

Android系列动画多个 subview

转载 作者:行者123 更新时间:2023-11-30 03:59:29 27 4
gpt4 key购买 nike

尝试向我们的应用程序添加帮助叠加层。这个叠加层是一个具有半透明背景的 RelativeLayout,它包含一些 TextView 和一些 ImageView 子元素。现在,我希望每个 TextView/ImageView 一个接一个地淡入。

我正在使用淡入动画集(在 XML 中定义)并在 AnimationListener 的 OnAnimationEnd 方法中的每个 View 上调用 .startAnimation()。因此,当第一个 View 完成淡入时,我在下一个要淡入的 View 上调用 startAnimation 方法。我使用相同的动画对象 (animationFadeIn) 作为所有 View 的 startAnimation 的参数。像这样:

...
Animation animationFadeIn = AnimationUtils.loadAnimation(this.context, R.anim.fadein);
...
AnimationListener animationInListener = new AnimationListener(){
@Override
public void onAnimationEnd(Animation animation) {
animation_activity++;
switch(animation_activity) {
case SHOW_TEXT_DROP:
txtDrop.startAnimation(animationFadeIn);
break;
case SHOW_TEXT_SEND:
txtSend.startAnimation(animationFadeIn);
break;
case SHOW_IMAGE_TOUCH:
imgTouch.startAnimation(animationFadeIn);
break;
case SHOW_TEXT_DISABLE:
txtDisable.startAnimation(animationFadeIn);
break;
}
}
};

对于淡入动画,我引用了this tutorial

问题来了:

  • 第一个 View 淡入
  • 第二个 View 淡入,但第一个 View 也随之淡入
  • 继续相同的操作,直到所有 View 都完成淡入

此外,如何在下一个 View 淡入之前添加一些延迟setStartOffset

更新

我注意到如果我通过以下方式创建第二个 Animation 对象

animationFadeIn2 = AnimationUtils.loadAnimation(this.context, R.anim.fadein);

然后将其用于其他元素的 startAnimation,则不会产生此问题。所以,我相信,必须在 Animation 对象上设置一些属性才能避免这种情况?

最佳答案

我终于继续为每个元素创建了多个动画对象。这样就暂时解决了问题。这可能不是正确/最好的方法。

关于Android系列动画多个 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12751983/

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