动画元素从Gone到Visible(而不是从Invisible)

时间:2014-06-27 10:03:59

标签: java android animation layout visibility

我希望淡入一个元素,但是在某种程度上它被隐藏(GONE)变为可见,从而移走了元素。我目前使用的动画是AlphaAnimation

Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(2000);

但这只会将其设置为INVSIBLEVISIBLE,我想要的是将其设置为GONEVISIBLE

这是否可能,或者我是否必须通过动画周围的元素来使这更复杂?

1 个答案:

答案 0 :(得分:2)

GONE和INVISIBLE之间的区别在于,当视图无形时,布局仍将其视为存在,GONE导致布局发生变化。因此,将阿尔法从GONE动画到VISIBLE并不能让它真正有意义。

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

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

碰巧,这个动画将其他组件分开以腾出空间,然后在有问题的视图中消失,所以可能是你之后的事情。

有关详细信息,请参阅http://developer.android.com/training/animation/layout.html