Android alpha 动画:覆盖初始 alpha 值
Android alpha animation: override initial alpha value
基本上我想要一些东西淡入然后淡出。刚开始应该是不可见的,动画结束后也是不可见的。
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 值?这不可能吗,我应该手动更改动画 start/end 处的可见性?
是的,你说得对 "it seems that the alpha animation is multiplying the initial alpha with that animation. So, 0f * 1.0f = 0f = invisible."。
只是不要使用 targetView.alpha = 0f;
,而是使用 targetView.setVisibility(View.INVISIBLE);
。
基本上我想要一些东西淡入然后淡出。刚开始应该是不可见的,动画结束后也是不可见的。
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 值?这不可能吗,我应该手动更改动画 start/end 处的可见性?
是的,你说得对 "it seems that the alpha animation is multiplying the initial alpha with that animation. So, 0f * 1.0f = 0f = invisible."。
只是不要使用 targetView.alpha = 0f;
,而是使用 targetView.setVisibility(View.INVISIBLE);
。