fillBefore是指动画结束时画面停留在第一帧,fillAfter是指动画结束是画面停留在最后一帧。最关键的问题是,这2个参数不能在xml中设置,这是没有用的。必须在java代码中设置。比如
setFillAfter(true);
setFillBefore(false);
setFillAfter(true);
setFillBefore(false);
这样动画结束时,停在最后一帧。
//---------------------------------------------
网上很多人都说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>
//-----------------------------
自己犯的错误在于将android:fillEnabled="true"和android:fillAfter="true"写在了t ranslate下面了,所以没有起作用。