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标签
使android:fillAfter="true"在xml中起作用
网上很多人都说android:fillAfter="true"这一属性在xml中设置使动画保持在播放的最后一帧不起作用,只能通过java代码来实现,其实这是一种误导。主要是在加这一属性的时候必须加在<set>标签这里才起作用,代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas.android.com/apk/res/android"
- android:fillEnabled="true"
- android:fillAfter="true">
- <translate
- android:interpolator="@android:anim/cycle_interpolator"
- android:fromXDelta="0"
- android:toXDelta="200"
- android:fromYDelta="0"
- android:toYDelta="-50"
- android:duration="10000"
- >
- </translate>
- </set>