动画元素从 Gone 到 Visible(而不是从 Invisible)
Posted
技术标签:
【中文标题】动画元素从 Gone 到 Visible(而不是从 Invisible)【英文标题】:Animate element from Gone to Visible (rather than from Invisible) 【发布时间】:2014-08-18 09:45:03 【问题描述】:我想淡入一个元素,但是以某种方式将它隐藏 (GONE
) 到可见状态,从而移开挡道的元素。我目前使用的动画是AlphaAnimation
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(2000);
但这只是将它从INVSIBLE
动画化到VISIBLE
,我想要将它从GONE
动画化到VISIBLE
。
这甚至可能吗,还是我必须通过为周围元素设置动画来使其变得更复杂?
【问题讨论】:
【参考方案1】:GONE 和 INVISIBLE 之间的区别在于,当视图为 INVISIBLE 时,布局仍将其视为存在,而 GONE 会导致布局发生变化。因此,将 alpha 从 GONE 设置为 VISIBLE 并没有真正的意义。
android 为您提供开箱即用的相当不错的动画。您只需告诉它为您设置动画布局更改。因此,只需将视图的可见性从 GONE 设置为 VISIBLE 即可自动启动。
<LinearLayout android:id="@+id/container"
android:animateLayoutChanges="true"
...
/>
当它发生时,这个动画将其他组件滑开以腾出空间,然后在相关视图中淡出,所以无论如何可能就是你想要的。
更多信息请参见http://developer.android.com/training/animation/layout.html。
【讨论】:
以上是关于动画元素从 Gone 到 Visible(而不是从 Invisible)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ANDROID 中为 View.GONE 到 View.VISIBLE 的视图设置动画
从 GONE 到 VISIBLE 的 Android 可见性第一次不起作用
如何从 View.gone 恢复视图。在xml中使用'android:visibility =“gone”'后setVisibility(View.VISIBLE)不起作用