Java 将元素从“消失”设置为“可见”(而不是从“不可见”)的动画

Java 将元素从“消失”设置为“可见”(而不是从“不可见”)的动画,java,android,animation,layout,visibility,Java,Android,Animation,Layout,Visibility,我想淡入一个元素,但以一种隐藏的方式(消失了)进入可见状态,移动途中的元素。我当前使用的动画是AlphaAnimation Animation fadeIn = new AlphaAnimation(0, 1); fadeIn.setInterpolator(new DecelerateInterpolator()); fadeIn.setDuration(2000); 但这只是将它从invible设置为VISIBLE,我想要的是将它从GONE设置为VISIBLE 这是可能的,还是我必须通过设

我想淡入一个元素,但以一种隐藏的方式(
消失了
)进入可见状态,移动途中的元素。我当前使用的动画是
AlphaAnimation

Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(2000);
但这只是将它从
invible
设置为
VISIBLE
,我想要的是将它从
GONE
设置为
VISIBLE


这是可能的,还是我必须通过设置周围元素的动画使其更加复杂?

消失和不可见的区别在于,当视图不可见时,布局仍将其视为存在,而“消失”会导致布局更改。因此,将alpha从“消失”设置为“可见”的动画并没有真正意义

Android给你一个相当好的开箱即用的动画。您只需告诉它为您设置布局更改的动画。因此,只需将视图的可见性从“GONE”设置为“VISIBLE”,即可自动启动此功能

<LinearLayout android:id="@+id/container"
    android:animateLayoutChanges="true"
    ...
/>

碰巧的是,该动画将其他组件滑动分开以腾出空间,然后在相关视图中淡入淡出,因此可能是您想要的

有关更多信息,请参阅