導(dǎo)讀
- 移動開發(fā)知識體系總章(Java基礎(chǔ)、Android样眠、Flutter)
- Android 動畫的分類介紹
- Android中的基礎(chǔ)動畫 屬性動畫(Property Animation)
- View Animation(視圖動畫)詳解
- Drawable Animation(幀動畫)詳解
Android 動畫的分類
Android開發(fā)中友瘤,常用的動畫有三種:
- Property Animation(屬性動畫)
- View Animation(視圖動畫)
- Drawable Animation(幀動畫)
Property Animation(屬性動畫)
屬性動畫是Android3.0版本推出的動畫框架,可謂Tween動畫的升級版檐束,它不僅能實現(xiàn)所有Tween動畫的功能辫秧,還有很強的拓展性。
屬性動畫從本質(zhì)上已經(jīng)完全擺脫了控件被丧,雖然我們大多數(shù)情況下使用屬性動畫都是給控件做動畫盟戏,但是屬性動畫的底層只是一個數(shù)值發(fā)生器,和控件沒有直接關(guān)系甥桂。
在Tween動畫中即使他的位置發(fā)生了變化柿究,但是點擊事件,監(jiān)聽 黄选,都還停留在原地蝇摸,不會跟著控件位置的變化去跟著改變。
一個經(jīng)典的問題就是一個Button從一個地方移動到另一個地方办陷,點擊事件還是在原來的地方貌夕。
而屬性動畫,顧名思義直接是改變的控件的屬性懂诗。所以,所有使用Tween動畫的場景都可以用屬性動畫來替代蜂嗽。
屬性動畫還保留了Tween動畫的監(jiān)聽屬性,即使位置發(fā)生變化也不會影響它的使用殃恒。
屬性動畫的特性:
- 支持對所有View能更新的屬性的動畫(需要屬性的setXxx()和getXxx())植旧。
- 更改的是View實際的屬性辱揭,所以不會影響其在動畫執(zhí)行后所在位置的正常使用。
- Android3.0(API11)及以后出現(xiàn)的功能病附,3.0之前的版本可使用github第三方開源庫nineoldandroids.jar進行支持问窃。
屬性動畫的優(yōu)缺點:
缺點:(3.0+API出現(xiàn))向下兼容問題
優(yōu)點:易定制,效果強
View Animation(視圖動畫完沪、Tween動畫)
視圖動畫即View動畫也被稱作補間動畫(Tween動畫)域庇,在Android1.0版本的時候就有了,Tween動畫一般直接作用頁面中的 View 上覆积,實現(xiàn)基本的動畫效果:平移听皿、旋轉(zhuǎn)、縮放宽档、透明度尉姨、或前幾者的組合。
- 漸變動畫支持四種類型:平移(Translate)吗冤、旋轉(zhuǎn)(Rotate)又厉、縮放(Scale)、透明度(Alpha)
- TranslateAnimation(平移動畫)
- RotateAnimation(旋轉(zhuǎn)動畫)
- ScaleAnimation(縮放動畫)
- AlphaAnimation(透明度動畫)
- 只是顯示的位置變動椎瘟,View的實際位置未改變覆致,表現(xiàn)為View移動到其他地方,點擊事件仍在原處才能響應(yīng)肺蔚。
- 組合使用步驟較復(fù)雜煌妈。
- AnimationSet (動畫集合)
View動畫作用于視圖整體,只需設(shè)定初始狀態(tài)(關(guān)鍵幀)和結(jié)束狀態(tài)(關(guān)鍵幀)宣羊,中間的狀態(tài)(變化過程)則由系統(tǒng)計算計算并補齊声旺,這也就是為什么叫補間動畫/Tween動畫。
Tween動畫的優(yōu)缺點
優(yōu)點:
使用/制作簡單
效果流暢
文件小段只,占用內(nèi)存少
缺點:
效果單一
擴展性差
只是在屏幕繪制上的動畫腮猖,控件的屬性并沒有改變(如前面提到的Button從一個地方移動到另一個地方的問題)
更多關(guān)于View Animation(視圖動畫)的使用及詳解
Drawable Animation(幀動畫)
幀動畫即Drawable動畫,是在時間幀上逐幀繪制幀內(nèi)容赞枕,由于是一幀一幀的畫澈缺,所以逐幀動畫具有非常大的靈活性,幾乎可以表現(xiàn)任何想表現(xiàn)的內(nèi)容炕婶。就是逐幀顯示定義好的一組圖片或者Drawable資源姐赡,效果類似于范燈片,一張張地切換圖片柠掂,不同于View動畫项滑,系統(tǒng)提供了另外一個類AnimationDrawable來使用幀動畫。實際的開發(fā)中涯贞,幀動畫使用的場景相對較少枪狂。
幀動畫的優(yōu)缺點
優(yōu)點:
- 有非常大的靈活性,表現(xiàn)任何想表現(xiàn)的內(nèi)容,合于表演很細膩的動畫
- 適合設(shè)備的開機動畫
- 適合其“復(fù)雜”的效果危喉,看似不可能完成的動畫
缺點: - 增加制作負擔而且最終輸出的文件量普遍較大,會占用較大空間州疾,容易卡頓辜限,容易引起OOM
- 幀動畫不能添加監(jiān)聽事件
更多關(guān)于Drawable Animation(幀動畫)的使用及詳解
文獻:
http://www.reibang.com/p/769242cba1f8
http://www.reibang.com/p/0eb89d43eea4