2017年5月10日 星期三

Android ViewAnimation

ViewAnimation,可以在各種View 上做透明度、大小、位置、旋轉的動畫

可以透過xml定義,xml放於res/anim目錄下

4 種動畫效果


alpha 透明度
scale 大小縮放
translate 位置移動
rotate  旋轉

<alpha>

透明度變化的動畫效果(淡入淡出)

android:duration 動畫持續的時間(毫秒)
android:fromAlpha 動畫開始的透明度。0為完全透明,1為不透明。
android:toAlpha  動畫結束的透明度。0為完全透明,1為不透明。

2秒慢慢變為完全透明

<translate>

移動動畫效果

android:duration 動畫持續的時間(毫秒)
android:fromXDelta 起始位置偏移量
android:toXDelta 結束位置X偏移量
android:fromYDelta 起始位置Y偏移量
android:toYDelta 結束位置Y偏移量

以上的值可設定%設定相對View的百分比位置,或%P來設定相對Parent View的百分比位置

移動至XY,View的一倍距離。

<scale>

縮放的動畫效果

android:duration 動畫持續的時間(毫秒)
android:fromXScale 起始的X座標縮放倍數 
android:toXScale 結束的X座標縮放倍數
android:fromYScale 起始的Y座標縮放倍數 
android:toYScale 結束的Y座標縮放倍數
android:pivotX 縮放時不變的X坐標,用百分比表示,0%表示左邊緣,50%為中間,100%表示右邊緣)
android:pivotY 縮放時不變的Y坐標,用百分比表示,0%表示上邊緣,50%為中間,100%表示下邊緣)

放大3倍,pivotX="50%" 代表中心點在中間

<rotate>

旋轉的動畫效果

android:duration 動畫持續的時間(毫秒)
android:fromDegrees 旋轉開始的角度
android:toDegrees 旋轉結束的角度
android:pivotX 旋轉中心點的X座標,
android:pivotY 旋轉中心點的Y座標

pivot 值可設定%設定相對View的百分比位置,或%P來設定相對Parent View的百分比位置

旋轉720度,即2圈。pivotX="50%" 代表中心點在中間

啟動這些動畫的方式,在Activity呼叫View.startAnimation
AnimationListener
implements Animation.AnimationListener ,動畫開始、結束、重複的事件。

完整程式
https://github.com/evanchen76/AnimationSample

參考
https://developer.android.com/guide/topics/graphics/view-animation.html

沒有留言:

張貼留言