Android三種動畫原理

來源:互聯網
上載者:User

標籤:

Android起初有兩種動畫:Frame Animation(逐幀動畫) Tween Animation(補間動畫)

 

兩種動畫的工作原理:

Frame Animation:大體意思就是將UI設計的多張圖片組成的動畫,然後在將他們組合起來連貫進行播放,類似於早期電影的工作原理。

Tween Animation:是對某個View進行一系列的動畫的操作,包括淡入淡出(Alpha),縮放(Scale),平移(Translate),旋轉(Rotate)四種模式

 

 

然而在從Android3.0版本開始後,Android系統給我們提供了一種全新的動畫模式,Property Animation(屬性動畫), 

 

Tween Animation動畫的幾大缺點: 


1:Tween Animation(補間動畫)只是針對於View,超脫了View就無法操作了,這句話的意思是:假如我們需要對一個Button,ImageView,LinearLayout或者是其他的繼承自View的各種組件進行動畫的操作時,Tween Animation是可以幫我們完成我們需要完成的功能的,但是如果我們需要用到對一個非View的對象進行動畫操作的話,那麼補間動畫就沒辦法實現了。舉個例子:比如我們有一個自訂的View,在這個View中有一個Point對象用於管理座標,然後在onDraw()方法中的座標就是根據該Pointde座標值進行繪製的。也就是說,如果我們可以對Point對象進行動畫操作,那麼整個自訂的View,那麼整個自繼承View的當前類就都有了動畫,但是我們的目的是不想讓View有動畫,只是對動畫中的Point座標產生動畫,這樣補間動畫就不能滿足了。


2:Tween Animation動畫有四種動畫操作(移動,縮放,旋轉,淡入淡出),但是我們現在有個需求就是將當前View的背景色進行改變呢?抱歉Tween Animation是不能協助我們實現的。


3:Tween Animation動畫只是改變View的顯示效果而已,但是不會真正的去改變View的屬性,舉個例子:我們現在螢幕的頂部有一個小球,然後通過補間動畫讓他移動到右下角,然後我們給這個小球添加了點擊事件,希望位置移動到右下角的時候點擊小球能的放大小球。但是點擊事件是絕對不會觸發的,原因是補間動畫只是將該小球繪製到了螢幕的右下角,實際這個小球還是停在螢幕的頂部,所以你在右下角點擊是沒有任何反應的。


 

針對於這些問題,Android在3.0版本之後引入了Property Animation(屬性動畫),通過Property Animation(屬性動畫)我們可以看出來,屬性動畫不再只是針對View進行設計的了,也就證明不只是限定在移動,縮放,旋轉和淡入淡出這幾種動畫的操作了,同時也不再只是一種視覺上的動畫效果了,屬性動畫其實是一種不斷地對值進行操作的機制,並將值賦到指定對象的指定屬性上,可以是任意對象的任意屬性。所以我們仍然可以對一個View進行移動和縮放,同時也可以對自訂View中的Point對象進行動畫操作了。我們只需要告訴系統動畫的運行時間長度,需要執行那種類型的動畫以及動畫的初始值和結束值。


Android三種動畫原理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.