【问题标题】:Android alpha animation: override initial alpha valueAndroid alpha 动画:覆盖初始 alpha 值
【发布时间】:2025-12-26 16:50:12
【问题描述】:

基本上我想要一些东西淡入然后淡出。最初它应该是不可见的,当动画结束时,它也应该是不可见的。

targetView.alpha = 0f;

    var aa = AlphaAnimation(0f, 1.0f);
    aa.duration=2000;
    aa.repeatMode = Animation.REVERSE;
    aa.repeatCount = 1;

我已经尝试了上面的代码,但它不起作用。似乎 alpha 动画将初始 alpha 与该动画相乘。所以,0f * 1.0f = 0f = 不可见。

在寻找答案后,我尝试了这个,但是没有用。

    aa.fillBefore= true;
    aa.fillAfter=true;

如何让动画忽略初始 alpha 值?这不可能吗,我应该手动更改动画开始/结束时的可见性吗?

【问题讨论】:

    标签: android android-animation


    【解决方案1】:

    是的,“看起来 alpha 动画似乎将初始 alpha 与该动画相乘。所以,0f * 1.0f = 0f = 不可见。”是正确的。

    不要使用targetView.alpha = 0f;,而是使用targetView.setVisibility(View.INVISIBLE);

    【讨论】: