android - 先淡出,然后淡入,在 Android 中不起作用

标签 android android-animation

<分区>

我想运行动画集:先淡出,然后淡入,但是不起作用,这是代码:

TextView iv_1 = findViewById(R.id.tv_1);
AnimationSet animSet = (AnimationSet) AnimationUtils
                       .loadAnimation(this, R.anim.fadeout_first);    // fadeout_first.xml
iv_1.setAnimation(animSet);

fadeout_first.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--fade out first-->
    <alpha android:duration="2000"
           android:fromAlpha="1"
           android:toAlpha="0"
    />

    <!--and then fade in-->
    <alpha android:duration="2000"
           android:fromAlpha="0"
           android:toAlpha="1"
           android:startOffset="2000"/>
</set>

但是当我改变顺序时(先淡入,然后淡出),它运行良好:

TextView iv_1 = findViewById(R.id.tv_1);
AnimationSet animSet = (AnimationSet) AnimationUtils
                       .loadAnimation(this, R.anim.fadein_first);  // fadein_first.xml
iv_1.setAnimation(animSet);

fadein_first.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--fade in first-->
    <alpha android:duration="2000"
           android:fromAlpha="0"
           android:toAlpha="1"
    />
    <!--and then fade out-->
    <alpha android:duration="2000"
           android:fromAlpha="1"
           android:toAlpha="0"
           android:startOffset="2000"/>
</set>

为什么?

最佳答案

试试这个

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="false">

    <!--fade out first-->
    <alpha
        android:duration="2000"
        android:fromAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="0.0" />

    <!--and then fade in-->
    <alpha
        android:duration="1000"
        android:fromAlpha="0.0"
        android:startOffset="2000"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="1.0" />


</set>

Java 代码

 TextView iv_1 = findViewById(R.id.tv_1);
 AnimationSet animSet = (AnimationSet) AnimationUtils
                .loadAnimation(this, R.anim.fadeout_first);
 iv_1.setAnimation(animSet);

关于android - 先淡出,然后淡入,在 Android 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50185582/

相关文章:

android - AS3 检查日期是否属于范围?

android:pathPattern 用于单个文件

android - ViewPager 转换中的 PageCurl 动画?

Android:方向改变时的后退按钮动画

android - 使用 AnimationSet 在 Activity 之间转换动画

java - 我想制作密码保护的android应用程序

android - 如何使谷歌地图多个标记信息窗口保持打开状态android

java - 在android Studio中使用Firestore数据库实现一对一聊天应用程序的逻辑是什么?

android - AdjustResize 带动画

android animate() withEndAction() vs setListener() onAnimationEnd()