Android之動畫Animation的使用

Android動畫主要分爲兩種:幀動畫和補間動畫
一、幀動畫:就像放映電影一樣;
使用步驟:
1,在res中創建文件夾drawable
2,在此文件夾下面創建文件(例如:frame_animation_useing.xml)
創建時選取標籤
frame_animation_useing.xml:

android:oneshot="false"
android:variablePadding="false"
android:visible="true" >

<!--
visible              boolean型,是否顯現
variablePadding   boolean型,默認爲false,當設置爲true時,則drawable的padding值隨當前選擇的狀態而改變。
oneshot              幀動畫的自動執行,如果爲true,表示動畫只執行一次停止在最後一幀上;若爲false表示動畫循環播放     

-->
<item
    android:drawable="@drawable/a"
    android:duration="100"
    />
<item
    android:drawable="@drawable/b"
    android:duration="100"/>
<item
    android:drawable="@drawable/c"
    android:duration="100"/>
<item
    android:drawable="@drawable/d"
    android:duration="100"/>
<item
    android:drawable="@drawable/e"
    android:duration="100"/>
<item
    android:drawable="@drawable/f"
    android:duration="100"/>

二、補間動畫:
補間動畫又分爲四大類:
移動補間動畫,
縮放補間動畫,
旋轉補間動畫,
透明補間動畫。
使用步驟:
1,在res中創建anim文件夾
2,在此文件夾下創建(如:tween_alpha_useing)
詳細介紹:

<!-- 
    android:oneshot        幀動畫的自動執行,爲true時,動畫只執行一次停在最後一幀上;爲false時循環執行
 -->
<!-- shareInterpolator   所有的Animation共用一個Interpolator  -->
<!-- android:repeatCount  重複次數  0,1.。。infinite-->

<!-- 補間動畫 -->

<!--
     透明度控制動畫效果 alpha
    浮點型值:
        fromAlpha 屬性爲動畫起始時透明度
        toAlpha   屬性爲動畫結束時透明度(0.0表示完全透明,1.0表示完全不透明) 
                            以上值取0.10-1.0之間的float數據類型的數字

         長整型值:
             duration  屬性爲動畫持續時間(時間以毫秒爲單位)

        android:fillBefore    指動畫結束時畫面停留在此動畫的第一幀; 默認值爲true
        android:fillAfter    指動畫結束是畫面停留在此動畫的最後一幀。默認值爲false
        android:fillEnabled
            1,FillEnable = false 時,FillBefore 和FillAfter的值將被忽略,此時FillEnable=Flase時和FillBefore = true且FillAfter=true,
            且FillEnabled=true等價,也就是開始結束都會被fill坑爹。。。,一般寫成false
            2,FillEnable = true時,FillBefore = true,FillAfter = false;只在第一幀fill
            3,FillEnable = true時,FillBefore = false,FillAfter=true;只在最後一幀fill
            4,FillEnable = true時,FillBefore = false,FillAfter=false

      startOffset    設置啓動時間
-->
<alpha
    android:duration="3000"
    android:fromAlpha="0.1"
    android:toAlpha="1.0" 
    android:fillBefore="true"
    android:fillAfter="true"
    android:fillEnabled="true"/>







<!--
     尺寸伸縮動畫效果 scale
    interpolator  指定一個動畫的插入器
        accelerate_decelerate_interpolator  加速-減速 動畫插入器
        accelerate_interpolator        加速-動畫插入器
        decelerate_interpolator        減速- 動畫插入器
               其他的屬於特定的動畫效果

     fromXScale 屬性爲動畫起始時 X座標上的伸縮尺寸    
     toXScale   屬性爲動畫結束時 X座標上的伸縮尺寸     
     fromYScale 屬性爲動畫起始時Y座標上的伸縮尺寸    
     toYScale   屬性爲動畫結束時Y座標上的伸縮尺寸    
         浮點值:0.0表示收縮到沒有 ; 1.0表示正常無伸縮    ;   值小於1.0表示收縮  ;  值大於1.0表示放大

      pivotX     屬性爲動畫相對於物件的X座標的開始位置
      pivotY     屬性爲動畫相對於物件的Y座標的開始位置
          值:以上兩個屬性值 從0%-100%中取值 ;    50%爲物件的X或Y方向座標上的中點位置

      duration  屬性爲動畫持續時間(同上)
      fillAfter 屬性 當設置爲true ,該動畫轉化在動畫結束後被應用

-->
<scale
    android:duration="3000"
    android:fillAfter="true"
    android:fromXScale="0.0"
    android:fromYScale="0.0"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:pivotX="20%"
    android:pivotY="30%"
    android:toXScale="0.8"
    android:toYScale="0.6" />




<!--
     位置轉移動畫效果  translate
        fromXDelta 屬性爲動畫起始時 X座標上的位置    
        toXDelta   屬性爲動畫結束時 X座標上的位置
        fromYDelta 屬性爲動畫起始時 Y座標上的位置
        toYDelta   屬性爲動畫結束時 Y座標上的位置
               注意:
                  沒有指定fromXType toXType fromYType toYType 時候,
                  默認是以自己爲相對參照物             

        duration  屬性爲動畫持續時間(時間以毫秒爲單位)

-->
<translate
    android:fromXScale="0.0"
    android:fromYScale="0.0"
    android:toXScale="0.8"
    android:toYScale="0.6" 
    android:duration="3000"/>




<!-- 
    旋轉動畫效果 rotate
        interpolator 指定一個動畫的插入器
                 有三種動畫插入器:
                    accelerate_decelerate_interpolator   加速-減速 動畫插入器
                    accelerate_interpolator               加速-動畫插入器
                    decelerate_interpolator               減速- 動畫插入器
                 其他的屬於特定的動畫效果

        fromDegrees 屬性爲動畫起始時物件的角度    
        toDegrees   屬性爲動畫結束時物件旋轉的角度 可以大於360度   
            浮點數:
                當角度爲負數——表示逆時針旋轉
                            當角度爲正數——表示順時針旋轉              
                 (負數from——to正數:順時針旋轉)   
                 (負數from——to負數:逆時針旋轉) 
                 (正數from——to正數:順時針旋轉) 
                 (正數from——to負數:逆時針旋轉) 

        pivotX     屬性爲動畫相對於物件的X座標的開始位置
        pivotY     屬性爲動畫相對於物件的Y座標的開始位置
            值:以上兩個屬性值 從0%-100%中取值 ;    50%爲物件的X或Y方向座標上的中點位置
         duration  屬性爲動畫持續時間(時間以毫秒爲單位)  
 -->
 <rotate 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator"
     android:fromDegrees="0.0"
     android:toDegrees="120"
     android:pivotX="20%"
     android:pivotY="30%"
     android:duration="3000"
     />

代碼下載地址:https://git.oschina.net/22889/Android_Animation.git

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章