android Tween動畫 (一)

http://blog.163.com/yimigao@126/blog/static/6715605020111134657352/android


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

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

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

XML定義動畫語法spa

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

<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之間。blog

<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表示,表明相對於父類組件的百分比。get

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

相關文章
相關標籤/搜索