android動畫中fillBefore以及fillAfter在xml中設定無效的問題
阿新 • • 發佈:2019-02-09
fillBefore是指動畫結束時畫面停留在第一幀,fillAfter是指動畫結束是畫面停留在最後一幀。最關鍵的問題是,這2個引數不能在xml中設定,這是沒有用的。必須在java程式碼中設定。比如
setFillAfter(true);
setFillBefore(false);
setFillAfter(true);
setFillBefore(false);
這樣動畫結束時,停在最後一幀。
//---------------------------------------------
網上很多人都說android:fillAfter="true"這一屬性在xml中設定使動畫保持在播放的最後一幀不起作用,只能通過java程式碼來實現,其實這是一種誤導。主要是在加這一屬性的時候必須加在<set>標籤這裡才起作用,程式碼如下:
- <?xmlversion="1.0"encoding="utf-8"?>
- <setxmlns: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
- android:fromYDelta="0"
- android:toYDelta="-50"
- android:duration="10000"
- >
- </translate>
- </set>
//-----------------------------
自己犯的錯誤在於將android:fillEnabled="true"和android:fillAfter="true"寫在了t ranslate下面了,所以沒有起作用。