淡入和放大动画视图可见性

时间:2014-09-13 17:09:40

标签: android android-animation android-view

我有一个RelativeLayout,其宽度和高度与应用程序窗口一样大,其可见性最初设置为View.GONE。

我希望在点击按钮时显示此视图。我希望淡入并放大同时应用。使用ViewPropertyAnimator可以轻松完成淡入淡出。我的问题是,我不知道如何使视图看起来好像它在渐渐消失时从较小的尺寸扩展到完整尺寸。

这有内置动画吗?我做了一些搜索,但没有找到任何东西。也许我没有使用正确的搜索关键字或其他东西。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:10)

  • 连接ViewPropertyAnimator
  • 的方法

因此动画将并行运行。 AnimationSet是旧api的一部分,您应该更喜欢查看属性动画。如果您想使用该技术(写入时间稍长且优化程度较低),您可以选择AnimatorSet(Animat- ...)。

以下是使用视图属性动画解决问题的代码段:

view.setVisibility(View.VISIBLE);
view.setAlpha(0.f);
view.setScaleX(0.f);
view.setScaleY(0.f);
view.animate()
    .alpha(1.f)
    .scaleX(1.f).scaleY(1.f)
    .setDuration(300)
    .start();

关于视图属性动画的一个很好的教程是here

答案 1 :(得分:3)

这可以使用AnimationSet完成,添加AlphaAnimation和ScaleAnimation。

AnimationSet animation = new AnimationSet(true);
animation.addAnimation(new AlphaAnimation(0.0F, 1.0F));
animation.addAnimation(new ScaleAnimation(0.8f, 1, 0.8f, 1)); // Change args as desired
animation.setDuration(300);
mView.startAnimation(animation);

答案 2 :(得分:0)

你可以分别通过这种方式滑动左右动画。

TranslateAnimation animate = new TranslateAnimation(0,-view.getWidth(), 0, 0);
animate.setDuration(time);
view.startAnimation(animate);
TranslateAnimation anim = new TranslateAnimation(-400f, 0f,0f,0f);
anim.setDuration(time);
view.startAnimation(anim );