android視圖動畫

一 概述

本文主要講解視圖動畫相關的知識,除了四種基本動畫以外,還有set標籤的使用。視圖動畫都可以通過兩種方式來使用,一是通過xml,二是隻使用代碼。視圖動畫主要分爲如下幾種動畫:

類別 描述
alpha 透明度動畫
scale 縮放動畫
translate 平移動畫
rotate 旋轉動畫

以上四種動畫,有部分通用的屬性和方法,如下表:

xml屬性 對應方法 描述
android:detachWallpaper setDetachWallpaper(boolean) 是否在壁紙上運行
android:duration setDuration(long) 動畫持續時間,毫秒爲單位
android:fillAfter setFillAfter(boolean) 動畫結束時是否保持在動畫最後的狀態
android:fillBefore setFillBefore(boolean) 動畫結束時是否保持在動畫開始前的狀態
android:fillEnabled setFillEnabled(boolean) 與android:fillBefore效果相同
android:interpolator setInterpolator(Interpolator) 設定插值器(後面有講解)
android:repeatCount setRepeatCount(int) 重複次數
android:repeatMode setRepeatMode(int) 重複類型,reverse表示倒序回放,restart表示從頭播放
android:startOffset setStartOffset(long) 調用start函數之後的延遲時間,單位爲毫秒
android:zAdjustment setZAdjustment(int) 動畫的內容運行時在Z軸上的位置,上層或者底層(top/bottom/normal),默認爲normal

二 alpha動畫

alpha動畫,即是透明度動畫,可以操作透明度,特有屬性有

xml屬性 描述
android:fromAlpha 動畫開始的透明度
android:toAlpha 動畫結束的透明度

在代碼中,創建AlphaAnimation對象的時候,也可以在構造方法中指定上述的兩個參數。AlphaAnimation(float fromAlpha, float toAlpha)

alpha動畫相對比較簡單。

二 scale動畫

縮放動畫,動畫中可以縮放視圖,改變視圖的大小,特有的屬性如下

xml屬性 對應方法 描述
android:fromXScale ScaleAnimation(float fromX, …) 初始x軸縮放比例,1表示原始大小
android:toXScale ScaleAnimation(…, float toX, …) 結束X軸縮放比例
android:fromYScale ScaleAnimation(…, float fromY, …) 初始Y軸縮放比例
android:toYScale ScaleAnimation(…, float toY, …) 結束Y軸縮放比例
android:pivotY ScaleAnimation(…, float pivotY) 縮放起點Y軸座標
android:pivotX ScaleAnimation(…, float pivotX, …) 縮放起點X軸座標(數值、百分數、百分數p,譬如50表示以當前View左上角座標加50px爲初始點、50%表示以當前View的左上角加上當前View寬高的50%做爲初始點、50%p表示以當前View的左上角加上父控件寬高的50%做爲初始點)

以上的ScaleAnimation(float fromX, …)代表構造方法時傳遞的參數。

三 translate

平移動畫,動畫中可以平移視圖,改變視圖的位置,特有的屬性如下

xml屬性 對應方法 描述
android:fromXDelta TranslateAnimation(float fromXDelta, …) 起始點X軸座標(數值、百分數、百分數p,譬如50表示以當前View左上角座標加50px爲初始點、50%表示以當前View的左上角加上當前View寬高的50%做爲初始點、50%p表示以當前View的左上角加上父控件寬高的50%做爲初始點)
android:fromYDelta TranslateAnimation(…, float fromYDelta, …) 起始點Y軸從標,同上規律
android:toXDelta TranslateAnimation(…, float toXDelta, …) 結束點X軸座標,同上規律
android:toYDelta TranslateAnimation(…, float toYDelta) 結束點Y軸

值得說明的fromXDelta中的x座標,默認是以控件自己作爲參照物。如果是0,則是當前位置。

四 rotate

旋轉動畫,動畫中可以旋轉視圖,特有的屬性如下

xml屬性 對應方法 描述
android:fromDegrees RotateAnimation(float fromDegrees, …) 旋轉開始角度,正代表順時針度數,負代表逆時針度數
android:toDegrees RotateAnimation(…, float toDegrees, …) 旋轉結束角度,正代表順時針度數,負代表逆時針度數
android:pivotX RotateAnimation(…, float pivotX, …) 起點X座標
android:pivotY RotateAnimation(…, float pivotY) 起點Y座標

以上四種基本動畫比較簡單,如果需要聯合使用可以使用set標籤,或者在代碼中使用AnimationSet

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