Android 动画fillAfter和fillBefore

fillBefore是指动画结束时画面停留在此动画的第一帧;

fillAfter是指动画结束是画面停留在此动画的最后一帧。

Java代码设置如下:

/*****动画结束时,停留在最后一帧*********
setFillAfter(true);
setFillBefore(false);  


/*****动画结束时,停留在第一帧*********
setFillAfter(false);
setFillBefore(true);  

 

 

xml设置如下:

/******动画结束时,停留在最后一帧**********
<set Android:fillAfter="true" android:fillBefore="false">


/******动画结束时,停留在第一帧**********
<set android:fillAfter="false" android:fillBefore="true">

PS:xml设置在scale标签里面设置是无效的,注意是set标签

评论

2 楼 jayaaaiii 2012-03-15   引用
用这两个属性前要先 把 设 android:fillEnabled="true" 这样才有效果
1 楼 tonyzzp 2011-10-26   引用
我写在set里了,也不管用啊。
 

亲测:

停留在最后一帧:如下三行要同时设置

        final Animation mGridViewAnim = AnimationUtils.loadAnimation(this, enterAnim ? R.anim.item_anim_in : R.anim.item_anim_out);
        mGridViewAnim.setFillEnabled(true);
        mGridViewAnim.setFillAfter(true);
        mGridViewAnim.setFillBefore(false);
        mGridViewAnim.setDuration(3000);

原文地址:https://www.cnblogs.com/onelikeone/p/7585739.html