为视图使用淡入动画

Gra*_*tzi 34 android android-animation

我希望有一个View最初是不可见的,当我按下一个按钮时,它会以淡入淡出的动画显示出来.我正在使用AlphaAnimation褪色效果.问题是,如果我使视图不可见,则无法看到动画.

非常感谢,

的Gratzi

Tan*_*dal 126

假设res\anim \文件夹中有一个ImageView命名imageView文件和一个动画文件your_fade_in_anim.xml:

ImageView imageView = (ImageView) findViewById(R.id.imageView);
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim);
// Now Set your animation
imageView.startAnimation(fadeInAnimation);
Run Code Online (Sandbox Code Playgroud)

你的XML

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha 
        android:fromAlpha="0.0"
        android:toAlpha="1.0" 
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:duration="[duration (in milliseconds)]"
        android:repeatCount="infinite" />
</set>
Run Code Online (Sandbox Code Playgroud)

用实际持续时间替换括号.

  • 虽然它没有回答正文中的问题,但它回答了"我如何淡出视图"的问题,这是问题的标题.因此,我想很多人在寻找动画时会找到这个答案(正如我所做的那样).虽然不是严格的答案,但它绝对有用. (50认同)
  • 这是如何解决视图最初不可见的问题? (10认同)
  • 简单使用`fadeInAnimation.setFillAfter(true);` (7认同)
  • 为什么这个答案有这么多的赞成?它甚至没有回答这个问题. (5认同)

Tim*_*Ohr 26

提供AnimationListener动画并在动画开始后立即显示视图.

http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html

  • 非常感谢,伙计!问题是如果视图不可见,则不执行应用程序,因此无法使用onStartAnimation方法.但是在开始动画之前,我已经在按钮的监听器中设置了视图,并且我将视图设置为在onEndAnimation中不可见. (3认同)