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"
/>