android初識屬性動畫---alpha、scale、translate、rotate、set的xml屬性及用法。
本文内容概述(知識點+2個小Demo)
1.簡介
Android的animation由四種類型組成:alpha、scale、translate、rotate,
alpha:漸變透明度動畫效果
scale:漸變尺寸伸縮動畫效果
translate:畫面轉換位置移動動畫效果
rotate:畫面轉移旋轉動畫效果
動作定義檔案應該先在res下建立一個專門存放動畫的檔案夾,程式通路時采用R.anim.XXX.xml的方式
2、從Animation類繼承的屬性
android:duration 動畫持續時間,以毫秒為機關
android:fillAfter 如果設定為true,控件動畫結束時,将保持動畫最後時的狀态
android:fillBefore 如果設定為true,控件動畫結束時,還原到開始動畫前的狀态
android:repeatCount 重複次數 這裡0表示展示一次,1表示展示兩次,若要無限展示可以寫 android:repeatCount="infinite"
android:repeatMode 重複類型,有reverse和restart兩個值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因為這裡的意義是重複的類型,即回放時的動作。
android:interpolator 設定插值器,其實就是指定的動作效果,比如彈跳效果等。
一、scale标簽——調節尺寸
scale标簽是縮放動畫,可以實作動态調控件尺寸的效果,有下面幾個屬性:
android:fromXScale 起始的X方向上相對自身的縮放比例,浮點值,比如1.0代表自身無變化,0.5代表起始時縮小一倍,2.0代表放大一倍;
android:toXScale 結尾的X方向上相對自身的縮放比例,浮點值;
android:fromYScale 起始的Y方向上相對自身的縮放比例,浮點值,
android:toYScale 結尾的Y方向上相對自身的縮放比例,浮點值;
android:pivotX 縮放起點X軸坐标,可以是數值、百分數、百分數p 三種樣式,比如 50、50%、50%p,當為數值時,表示在目前View的左上角,即原點處加上50px,做為起始縮放點;如果是50%,表示在目前控件的左上角加上自己寬度的50%做為起始點;如果是50%p,那麼就是表示在目前的左上角加上父控件寬度的50%做為起始點x軸坐标。
這裡主要說下pivotx和pivoty,個人了解就是本身預設縮放起點是左上角,而這個屬性就是改變這個點的。如果不設定這個屬性,動畫預設從左上角開始縮放,若設定了pivotX="50%",則縮放起始位置從左上角向右偏移個50px,類似于水準中心縮放了。android:pivotY 縮放起點Y軸坐标,取值及意義跟android:pivotX一樣。
二、alpha标簽——調節透明度
android:fromAlpha 動畫開始的透明度,從0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明
android:toAlpha 動畫結束時的透明度,也是從0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明
三、rotate标簽——旋轉
android:fromDegrees 開始旋轉的角度位置,正值代表順時針方向度數,負值代碼逆時針方向度數
android:toDegrees 結束時旋轉到的角度位置,正值代表順時針方向度數,負值代碼逆時針方向度數
android:pivotX 縮放起點X軸坐标,可以是數值、百分數、百分數p 三種樣式,比如 50、50%、50%p,具體意義已在scale标簽中講述,這裡就不再重講
android:pivotY 縮放起點Y軸坐标,可以是數值、百分數、百分數p 三種樣式,比如 50、50%、50%p
四、translate标簽 —— 平移
android:fromXDelta 起始點X軸坐标,可以是數值、百分數、百分數p 三種樣式,比如 50、50%、50%p,具體意義已在scale标簽中講述,這裡就不再重講
android:fromYDelta 起始點Y軸從标,可以是數值、百分數、百分數p 三種樣式;
android:toXDelta 結束點X軸坐标
android:toYDelta 結束點Y軸坐标
還有set标簽,set标簽自已是沒有屬性的,他的屬性都是從Animation繼承而來,但當它們用于Set标簽時,就會對Set标簽下的所有子控件都産生作用。其實就是動畫集合。
設定動畫代碼(重點)
alpaAnimation = AnimationUtils.loadAnimation(this, R.anim.alphaanim);
image_view.startAnimation(alpaAnimation);
1.心跳動Demo(動畫以XML方式實作)
在res下建立anim檔案夾,再new一個資源檔案寫動畫

size.xml代碼截圖
主界面代碼:

MainActivity.java代碼截圖
布局代碼:

activity_main.xml代碼截圖
運作效果(點選愛心):

圖檔發自簡書App
2.四種Tween動畫效果實踐Demo(動畫以Java代碼實作)
根據這5個步驟來實作動畫:

Animations的五個步驟
主界面代碼:

1

2
這就是動畫實作的步驟:

3

4

5
界面代碼差不多就以上這些了,布局代碼我就省略掉了,UI看自己心情設計...
小Tips:如果要讓按鈕效果更加具有互動性,可以這樣寫,就有了按鈕按下和沒按下的差別了

按鈕按下及沒按下的顯示效果
運作截圖:

Animation動畫實作
寫在最後,我是安卓萌新,如果有錯誤請告知,我及時改正~