歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android Tween動畫

Android Tween動畫

日期:2017/3/1 10:39:00   编辑:Linux編程

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);

Copyright © Linux教程網 All Rights Reserved