Android 動畫實現(xiàn)幾種方案
Android 動畫實現(xiàn)幾種方案
在 Android 的 FrameWork 中,為我們提供三種動畫的實現(xiàn)方式:逐幀(Frame)動畫、視圖/補間動畫(View Animation)和屬性動畫(Property Animation)。由于,這三種動畫的實現(xiàn)方式和針對面不一樣,應(yīng)用的范圍也有所區(qū)別,因此我們需要根據(jù)具體的需求來選擇正確動畫類型。
根據(jù) SDK 中的描述,這三者的功能強大程度為:逐幀動畫 < 視圖動畫 < 屬性動畫。
一、逐幀動畫(Frame Animation)
該動畫的方式就是將動畫的過程的每一張靜態(tài)圖片都收集起來,然后依次顯示這些圖片,利用人眼的“視覺停留”的原理,給用戶產(chǎn)生動畫的效果。
逐幀動畫是一種常見的動畫形式(Frame By Frame),其原理是在“連續(xù)的關(guān)鍵幀”中分解動畫動作,也就是在時間軸的每幀上逐幀繪制不同的內(nèi)容,使其連續(xù)播放而成動畫。 因為逐幀動畫的幀序列內(nèi)容不一樣,不但給制作增加了負(fù)擔(dān)而且最終輸出的文件量也很大,但它的優(yōu)勢也很明顯:逐幀動畫具有非常大的靈活性,幾乎可以表現(xiàn)任何想表現(xiàn)的內(nèi)容,而它類似與電影的播放模式,很適合于表演細(xì)膩的動畫。例如:人物或動物急劇轉(zhuǎn)身、 頭發(fā)及衣服的飄動、走路、說話以及精致的 3D 效果等等。
二、視圖動畫(Tween Animation)
也稱為補間(Tween)動畫,根據(jù)這兩個定義可以看出該動畫方式的一些特征:
1、該動畫方式只是針對于 View 對象實現(xiàn) view 組件的移動、放大、縮小以及漸變等效果,例如 ImageView、Button 等;
2、實現(xiàn)該動畫時,只需要給出兩個關(guān)鍵幀中的內(nèi)容即可,動畫中各個過渡幀中的內(nèi)容由 flash 自動生成??梢岳斫獬赏纳x,就是在兩點之間插入漸變值來平滑過渡。
由于視圖動畫在 Android 中是一個 older system,所以還不能對所有的效果進行支持,目前只支持:
1、透明度變化的動畫(AlphaAnimation);
2、大小縮放的動畫(ScaleAnimation);
3、位置變化的動畫(TranslateAnimation);
4、旋轉(zhuǎn)動畫(RotateAnimation)。
三、屬性動畫
為了彌補視圖動畫的不足,Android 在 3.0 中引入了屬性動畫。和視圖動畫專注與視圖效果不同,它更專注于對象的屬性的變化,通過改變對象的屬性而實現(xiàn)動畫包括可是屬性和其他屬性,不論該對象是否可見。例如:你使用視圖動畫將一個 Button 放大一倍,在界面上的效果可以實現(xiàn),但是該 Button 的觸摸響應(yīng)區(qū)域還是和原來的一樣,也就是說,視圖動畫并不是真正的將該 Button 放大一倍。
屬性動畫和補間動畫類似,不過是真的屬性在變動,包括可視屬性和其他屬性。
補間動畫僅僅是可視屬性在顯示層面的動畫,屬性的實質(zhì)并未改動。
一般情況下推薦使用最新的屬性動畫。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Android使用緩存機制實現(xiàn)文件下載及異步請求圖片加三級緩存
這篇文章主要介紹了Android使用緩存機制實現(xiàn)文件下載及異步請求圖片加三級緩存的相關(guān)資料,需要的朋友可以參考下2016-02-02Android?Flutter實現(xiàn)在多端運行的掃雷游戲
當(dāng)我們回憶起小時候的經(jīng)典電腦游戲,掃雷一定是其中之一。本文將通過Flutter實現(xiàn)一個能在多端運行的掃雷游戲,感興趣的可以了解一下2023-03-03Android ViewFlipper翻轉(zhuǎn)視圖使用詳解
這篇文章主要為大家詳細(xì)介紹了Android ViewFlipper翻轉(zhuǎn)視圖的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05初識Android?PowerManagerService省電模式
這篇文章主要介紹了初識Android?PowerManagerService省電模式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-08-08Android實現(xiàn)仿慕課網(wǎng)下拉加載動畫
這篇文章是我在做動畫的項目中整理出來的,在eoe看了篇帖子,然后仿慕課網(wǎng)做了一個下拉加載動畫。此功能實現(xiàn)方法是AnimationDrawable類進行 Animation-list中item的循環(huán)遍歷圖片,類似于flash里的幀幀動畫,需要的朋友可以參考下2015-07-07