Android動畫原理-基礎篇(認識View)

1、動畫是什麼android

Animation is a dynamic medium in which images or objects are manipulated to appear as moving images. -來自維基百科canvas

翻譯:動畫是動態的畫面。app

2、android中的動畫佈局

手機的屏幕是刷新的,正常狀況下頻率在60fps.也就是大約16ms界面會刷新一次。動畫

android全部的動畫的原理都是在這16ms之間,改變了顯示內容的區域,從而達到動畫的效果。翻譯

由於android的可視控件的繪製都是在View上完成的,因此理解View對理解動畫有很大的幫助。ip

3、簡述View的繪製過程get

View的繪製過程分爲三個步驟,測量、佈局、繪製。io

這三個詞很容易理解,下面重點解釋這三個步驟具體跟View產生了什麼樣的聯繫。原理

1.測量:
View的測量發生在measure,父佈局調用child.measure方法來測量子view.而子view合適的反饋應該是測量完畢後經過setMeasureDimension方法設置好本身的大小,以便父view做參考。

View測量的過程經常發生在onMeasure方法中,測量完畢後調用setMeasureDimension實際是設置了View的mMeasureWidth和mMeasureHeight。

2.佈局:

View的佈局發生在layout中,一樣父佈局調用child.layout(l,r,t,b)並傳遞給child設定好的位置來讓child設置自身的mLeft,mRight,mTop,mBottom。

通常狀況會直接根據layout的建議來設置本身的mLeft,mRight,mTop,mBottom。

固然你能夠忽略建議,本身設置,注意若是你改了mLeft,mTop,意味着你對父view對本身設置的左上角頂點不滿意。

若是你改變了(mRight-mLeft) 和 (mBottom-mTop) 意味着你對父view對本身設置的大小不滿意。--你應該已經知道此後View的getWidht 和 getHeight就是獲取的前面兩個減法運算的結果。

你能夠在程序運行中隨時改變它們,而這種場景就包括動畫。

3.繪製

繪製發生的View的draw方法中。父View會經過drawchild會調用child的draw(x,x,x)三個參數的這個方法,其中有一個參數是canvas。

在draw(x,x,x)方法中,View默認先對canvas translate一下 到View的座標系中,而後進行硬件或軟件的繪製。

相關文章
相關標籤/搜索