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

我正在使用淡入动画集(在XML中定义),并在AnimationListener的.startAnimation()方法的每个视图上调用OnAnimationEnd。因此,当第一个视图完成淡入时,我在要淡入的下一个视图上调用startAnimation方法。我使用相同的Animation对象(animationFadeIn)作为所有视图的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

现在,这是问题所在:


第一视图渐入
第二个视图逐渐淡入,但第一个视图也随之淡入
继续进行直到所有视图都淡入


另外,如何在下一个视图渐隐setStartOffset之前增加一些延迟?

更新

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

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


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

最佳答案

最后,我为每个元素创建了多个Animation对象。这就解决了时间问题。这可能不是正确/最佳方法。

07-24 19:14