1. 程式人生 > >android動畫中fillBefore以及fillAfter在xml中設定無效的問題

android動畫中fillBefore以及fillAfter在xml中設定無效的問題

fillBefore是指動畫結束時畫面停留在第一幀,fillAfter是指動畫結束是畫面停留在最後一幀。最關鍵的問題是,這2個引數不能在xml中設定,這是沒有用的。必須在java程式碼中設定。比如
setFillAfter(true);
  setFillBefore(false);

這樣動畫結束時,停在最後一幀。

//---------------------------------------------

網上很多人都說android:fillAfter="true"這一屬性在xml中設定使動畫保持在播放的最後一幀不起作用,只能通過java程式碼來實現,其實這是一種誤導。主要是在加這一屬性的時候必須加在<set>標籤這裡才起作用,程式碼如下:

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <setxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:fillEnabled="true"
  4.     android:fillAfter="true">
  5.     <translate
  6.         android:interpolator="@android:anim/cycle_interpolator"
  7.         android:fromXDelta="0"
  8.         android:toXDelta
    ="200"
  9.         android:fromYDelta="0"
  10.         android:toYDelta="-50"
  11.         android:duration="10000"
  12.         >
  13.     </translate>
  14. </set>

//-----------------------------

自己犯的錯誤在於將android:fillEnabled="true"和android:fillAfter="true"寫在了t ranslate下面了,所以沒有起作用。