Android 動(dòng)畫(huà)實(shí)現(xiàn)幾種方案
Android 動(dòng)畫(huà)實(shí)現(xiàn)幾種方案
在 Android 的 FrameWork 中,為我們提供三種動(dòng)畫(huà)的實(shí)現(xiàn)方式:逐幀(Frame)動(dòng)畫(huà)、視圖/補(bǔ)間動(dòng)畫(huà)(View Animation)和屬性動(dòng)畫(huà)(Property Animation)。由于,這三種動(dòng)畫(huà)的實(shí)現(xiàn)方式和針對(duì)面不一樣,應(yīng)用的范圍也有所區(qū)別,因此我們需要根據(jù)具體的需求來(lái)選擇正確動(dòng)畫(huà)類型。
根據(jù) SDK 中的描述,這三者的功能強(qiáng)大程度為:逐幀動(dòng)畫(huà) < 視圖動(dòng)畫(huà) < 屬性動(dòng)畫(huà)。
一、逐幀動(dòng)畫(huà)(Frame Animation)
該動(dòng)畫(huà)的方式就是將動(dòng)畫(huà)的過(guò)程的每一張靜態(tài)圖片都收集起來(lái),然后依次顯示這些圖片,利用人眼的“視覺(jué)停留”的原理,給用戶產(chǎn)生動(dòng)畫(huà)的效果。
逐幀動(dòng)畫(huà)是一種常見(jiàn)的動(dòng)畫(huà)形式(Frame By Frame),其原理是在“連續(xù)的關(guān)鍵幀”中分解動(dòng)畫(huà)動(dòng)作,也就是在時(shí)間軸的每幀上逐幀繪制不同的內(nèi)容,使其連續(xù)播放而成動(dòng)畫(huà)。 因?yàn)橹饚瑒?dòng)畫(huà)的幀序列內(nèi)容不一樣,不但給制作增加了負(fù)擔(dān)而且最終輸出的文件量也很大,但它的優(yōu)勢(shì)也很明顯:逐幀動(dòng)畫(huà)具有非常大的靈活性,幾乎可以表現(xiàn)任何想表現(xiàn)的內(nèi)容,而它類似與電影的播放模式,很適合于表演細(xì)膩的動(dòng)畫(huà)。例如:人物或動(dòng)物急劇轉(zhuǎn)身、 頭發(fā)及衣服的飄動(dòng)、走路、說(shuō)話以及精致的 3D 效果等等。
二、視圖動(dòng)畫(huà)(Tween Animation)
也稱為補(bǔ)間(Tween)動(dòng)畫(huà),根據(jù)這兩個(gè)定義可以看出該動(dòng)畫(huà)方式的一些特征:
1、該動(dòng)畫(huà)方式只是針對(duì)于 View 對(duì)象實(shí)現(xiàn) view 組件的移動(dòng)、放大、縮小以及漸變等效果,例如 ImageView、Button 等;
2、實(shí)現(xiàn)該動(dòng)畫(huà)時(shí),只需要給出兩個(gè)關(guān)鍵幀中的內(nèi)容即可,動(dòng)畫(huà)中各個(gè)過(guò)渡幀中的內(nèi)容由 flash 自動(dòng)生成??梢岳斫獬赏纳x,就是在兩點(diǎn)之間插入漸變值來(lái)平滑過(guò)渡。
由于視圖動(dòng)畫(huà)在 Android 中是一個(gè) older system,所以還不能對(duì)所有的效果進(jìn)行支持,目前只支持:
1、透明度變化的動(dòng)畫(huà)(AlphaAnimation);
2、大小縮放的動(dòng)畫(huà)(ScaleAnimation);
3、位置變化的動(dòng)畫(huà)(TranslateAnimation);
4、旋轉(zhuǎn)動(dòng)畫(huà)(RotateAnimation)。
三、屬性動(dòng)畫(huà)
為了彌補(bǔ)視圖動(dòng)畫(huà)的不足,Android 在 3.0 中引入了屬性動(dòng)畫(huà)。和視圖動(dòng)畫(huà)專注與視圖效果不同,它更專注于對(duì)象的屬性的變化,通過(guò)改變對(duì)象的屬性而實(shí)現(xiàn)動(dòng)畫(huà)包括可是屬性和其他屬性,不論該對(duì)象是否可見(jiàn)。例如:你使用視圖動(dòng)畫(huà)將一個(gè) Button 放大一倍,在界面上的效果可以實(shí)現(xiàn),但是該 Button 的觸摸響應(yīng)區(qū)域還是和原來(lái)的一樣,也就是說(shuō),視圖動(dòng)畫(huà)并不是真正的將該 Button 放大一倍。
屬性動(dòng)畫(huà)和補(bǔ)間動(dòng)畫(huà)類似,不過(guò)是真的屬性在變動(dòng),包括可視屬性和其他屬性。
補(bǔ)間動(dòng)畫(huà)僅僅是可視屬性在顯示層面的動(dòng)畫(huà),屬性的實(shí)質(zhì)并未改動(dòng)。
一般情況下推薦使用最新的屬性動(dòng)畫(huà)。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android UniversalVideoView實(shí)現(xiàn)視頻播放器
這篇文章主要為大家詳細(xì)介紹了Android UniversalVideoView實(shí)現(xiàn)視頻播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Android利用WindowManager生成懸浮按鈕及懸浮菜單
這篇文章主要為大家詳細(xì)介紹了Android利用WindowManager生成懸浮按鈕及懸浮菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android編程實(shí)現(xiàn)TextView部分顏色變動(dòng)的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)TextView部分顏色變動(dòng)的方法,實(shí)例分析了TextView設(shè)置指定位置的背景色與字體顏色的相關(guān)技巧,需要的朋友可以參考下2015-12-12
Android中Image的簡(jiǎn)單實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了Android中Image的簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Android實(shí)現(xiàn)簡(jiǎn)單購(gòu)物車功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)二級(jí)列表購(gòu)物車功能 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android編程基于自定義view實(shí)現(xiàn)公章效果示例【附源碼下載】
這篇文章主要介紹了Android編程基于自定義view實(shí)現(xiàn)公章效果,結(jié)合實(shí)例形式分析了Android使用自定義view進(jìn)行圖形繪制的相關(guān)操作技巧,并附帶完整實(shí)例源碼供讀者下載參考,需要的朋友可以參考下2017-11-11
Android使用GestureOverlayView控件實(shí)現(xiàn)手勢(shì)識(shí)別
這篇文章主要為大家詳細(xì)介紹了Android使用GestureOverlayView控件實(shí)現(xiàn)手勢(shì)識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Android JSON數(shù)據(jù)與實(shí)體類之間的相互轉(zhuǎn)化(GSON的用法)
這篇文章主要介紹了Android JSON數(shù)據(jù)與實(shí)體類之間的相互轉(zhuǎn)化(GSON的用法),非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-01-01
Android 圖片的三級(jí)緩存機(jī)制實(shí)例分析
這篇文章主要介紹了Android 圖片的三級(jí)緩存機(jī)制實(shí)例分析的相關(guān)資料,需要的朋友可以參考下2017-05-05

