2014-06-27 78 views
1

我想淡入一个元素,但以某种方式将其隐藏(GONE)变为可见,将元素从中移除。我目前使用的动画是AlphaAnimation将元素从变为可见(而不是从不可见)

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

但这只是它动画化从INVSIBLEVISIBLE,我要的是把它从动画到GONEVISIBLE

这甚至有可能吗?还是我必须通过对周围元素进行动画来使这变得更加复杂?

回答

2

GONE与INVISIBLE之间的区别在于,当视图是INVISIBLE时,布局仍将它视为那里,而GONE会导致布局更改。因此,将GONE中的alpha动画变为VISIBLE并不会真正有意义。

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

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

碰巧,这个动画幻灯片其他部件拆开来腾出空间,然后在有问题的看法变淡,所以可能是你反正以后是什么。

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