fillBefore是指动画结束时画面停留在此动画的第一帧;
默认值为true
fillAfter是指动画结束是画面停留在此动画的最后一帧。默认值为false
但奇葩的是google还加了个FillEnable
变量,这个变量简直坑爹。。。
源码:
android.view.animation.Animation.java
854行
if ((normalizedTime >= 0.0f || mFillBefore) && (normalizedTime <= 1.0f || mFillAfter)) { if fireAnimationStart(); mStarted if guard.open("cancel or detach or getTransformation"); } } if if normalizedTime } final applyTransformation(interpolatedTime, outTransformation); } |
1,FillEnable
= false
时,FillBefore
和FillAfter的值将被忽略,此时FillEnable=Flase时和FillBefore
= true且FillAfter=true,且FillEnabled=true等价,也就是开始结束都会被fill坑爹。。。
2,FillEnable
= true时,FillBefore = true,FillAfter
= false
只在第一帧fill
3,FillEnable = true时,FillBefore = false,FillAfter=true
只在最后一帧fill
4,FillEnable = true时,FillBefore = false,FillAfter=false
这个控制也比较坑爹,从变量名理解以为只要FillEnable=false就好,其它当FillEnable=false时又回到第1种情况太坑爹了。。
好吧。被写这块代码的人彻底搞晕了。。。