android Tween動畫 (一)

Tween動畫是展現出旋轉、漸變、移動、縮放的這麼一種轉換過程,即補間動畫。Tween動畫有兩種定義方式:XML形式,編碼形式。

XML定義動畫,按照動畫定義語法完成XML,置於/res/anim目錄下,文件名作爲資源ID引用;

編碼定義動畫,使用Animation對象。

XML定義動畫語法

XML文件中必須有一個根元素,可以是<alpha>、<scale>、<translate>、<rotate>中的任意一個,也可以是<set>來管理一個由前面幾個元素組成的動畫集合。

<set>是一個動畫容器,管理多個動畫的羣組,與之相對應的Java對象是AnimationSet。它有兩個屬性,android:interpolator代表一個插值器資源,可以引用系統自帶插值器資源,也可以用自定義插值器資源,默認值是勻速插值器;稍後我會對插值器做出詳細講解。android:shareInterpolator代表<set>裏面的多個動畫是否要共享插值器,默認值爲true,即共享插值器,如果設置爲false,那麼<set>的插值器就不再起作用,我們要在每個動畫中加入插值器。

<alpha>是漸變動畫,可以實現fadeIn和fadeOut的效果,與之對應的Java對象是AlphaAnimation。android:fromAlpha屬性代表起始alpha值,浮點值,範圍在0.0和1.0之間,分別代表透明和完全不透明,android:toAlpha屬性代表結尾alpha值,浮點值,範圍也在0.0和1.0之間。

<scale>是縮放動畫,可以實現動態調控件尺寸的效果,與之對應的Java對象是ScaleAnimation。android:fromXScale屬性代表起始的X方向上相對自身的縮放比例,浮點值,比如1.0代表自身無變化,0.5代表起始時縮小一倍,2.0代表放大一倍;android:toXScale屬性代表結尾的X方向上相對自身的縮放比例,浮點值;android:fromYScale屬性代表起始的Y方向上相對自身的縮放比例,浮點值;android:toYScale屬性代表結尾的Y方向上相對自身的縮放比例,浮點值;android:pivotX屬性代表縮放的中軸點X座標,浮點值,android:pivotY屬性代表縮放的中軸點Y座標,浮點值,對於這兩個屬性,如果我們想表示中軸點爲圖像的中心,我們可以把兩個屬性值定義成0.5或者50%。

<translate>是位移動畫,代表一個水平、垂直的位移。與之對應的Java對象是TranslateAnimation。android:fromXDelta屬性代表起始X方向的位置,android:toXDelta代表結尾X方向上的位置,android:fromYScale屬性代表起始Y方向上的位置,android:toYDelta屬性代表結尾Y方向上的位置,以上四個屬性都支持三種表示方式:浮點數、num%、num%p;如果以浮點數字表示,代表相對自身原始位置的像素值;如果以num%表示,代表相對於自己的百分比,比如toXDelta定義爲100%就表示在X方向上移動自己的1倍距離;如果以num%p表示,代表相對於父類組件的百分比。

<rotate>是旋轉動畫,與之對應的Java對象是RotateAnimation。android:fromDegrees屬性代表起始角度,浮點值,單位:度;android:toDegrees屬性代表結尾角度,浮點值,單位:度;android:pivotX屬性代表旋轉中心的X座標值,android:pivotY屬性代表旋轉中心的Y座標值,這兩個屬性也有三種表示方式,數字方式代表相對於自身左邊緣的像素值,num%方式代表相對於自身左邊緣或頂邊緣的百分比,num%p方式代表相對於父容器的左邊緣或頂邊緣的百分比。

另外,在動畫中,如果我們添加了android:fillAfter="true"後,這個動畫執行完之後保持最後的狀態;android:duration="integer"代表動畫持續的時間,單位爲毫米。

XML動畫使用代碼

ImageView image = (ImageView) findViewById(R.id.image);

Animation testAnim = AnimationUtils.loadAnimation(this, R.anim.test);

image.startAnimation(testAnim);

發佈了41 篇原創文章 · 獲贊 15 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章