標籤:
Android 使用Animation的具體操作方法我們將會在這篇文章中做一個詳細的介紹。大家可以通過這裡舉出的代碼進行解讀,並從中瞭解到相關操作技巧,方便我們將來開發應用,並且加深對這一作業系統的理解程度。
在Android中,分別可以在xml中定義Animation,也可以在程式碼中定義。
動畫類型
Android的animation由四種類型組成
XML中
| alpha |
漸層透明度動畫效果 |
| scale |
漸層尺寸伸縮動畫效果 |
| translate |
畫面轉換位置移動動畫效果 |
| rotate |
畫面轉移旋轉動畫效果 |
JavaCode中
| AlphaAnimation |
漸層透明度動畫效果 |
| ScaleAnimation |
漸層尺寸伸縮動畫效果 |
| TranslateAnimation |
畫面轉換位置移動動畫效果 |
| RotateAnimation |
畫面轉移旋轉動畫效果 |
Android動畫模式
Animation主要有兩種動畫模式:
一種是tweened animation(漸層動畫)
| XML中 |
JavaCode |
| alpha |
AlphaAnimation |
| scale |
ScaleAnimation |
一種是frame by frame(畫面轉換動畫)
| XML中 |
JavaCode |
| translate |
TranslateAnimation |
| rotate |
RotateAnimation |
如何在XML檔案中定義動畫
① 開啟Eclipse,建立Android工程
② 在res目錄中建立anim檔案夾
③ 在anim目錄中建立一個myanim.xml(注意檔案名稱小寫)
④ 加入XML的動畫代碼
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha/> <scale/> <translate/> <rotate/> </set>
Android動畫解析--XML
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:fromAlpha="0.1"android:toAlpha="1.0"android:duration="3000"/> <!-- 透明度控制動畫效果 alpha 浮點型值: fromAlpha 屬性為動畫起始時透明度 toAlpha 屬性為動畫結束時透明度 說明: 0.0表示完全透明 1.0表示完全不透明 以上值取0.0-1.0之間的float資料類型的數字 長整型值: duration 屬性為動畫期間 說明: 時間以毫秒為單位 --> </set>
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:interpolator= "@android:anim/accelerate_decelerate_interpolator" android:fromXScale="0.0" android:toXScale="1.4" android:fromYScale="0.0" android:toYScale="1.4" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="700" /> </set> <!-- 尺寸伸縮動畫效果 scale 屬性:interpolator 指定一個動畫的插入器 在我實驗過程中,使用android.res.anim中的資源時候發現 有三種動畫插入器: 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 ,該動畫轉化在動畫結束後被應用 -->
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="30"android:toXDelta="-80"android:fromYDelta="30"android:toYDelta="300"android:duration="2000"/> <!-- translate 位置轉移動畫效果 整型值: fromXDelta 屬性為動畫起始時 X座標上的位置 toXDelta 屬性為動畫結束時 X座標上的位置 fromYDelta 屬性為動畫起始時 Y座標上的位置 toYDelta 屬性為動畫結束時 Y座標上的位置 注意: 沒有指定fromXType toXType fromYType toYType 時候, 預設是以自己為相對參照物 長整型值: duration 屬性為動畫期間 說明: 時間以毫秒為單位 --> </set>
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromDegrees="0" android:toDegrees="+350" android:pivotX="50%" android:pivotY="50%" android:duration="3000" /> <!-- rotate 旋轉動畫效果 屬性:interpolator 指定一個動畫的插入器 在我實驗過程中,使用android.res.anim中的資源時候發現 有三種動畫插入器: 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 屬性為動畫期間 說明: 時間以毫秒為單位 --> </set>
本文轉載自 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1113/548.html
(四)Android動畫開發---Animation動畫效果詳解