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

來源:互聯網
上載者:User

標籤:包括   mat   ima   set   維基百科   dimens   fps   raw   預設   

一、動畫是什麼

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

翻譯:動畫是動態畫面。

二、android中的動畫

手機的螢幕是重新整理的,正常情況下頻率在60fps.也就是大約16ms介面會重新整理一次。

android所有的動畫的原理都是在這16ms之間,改變了顯示內容的地區,從而達到動畫的效果。

因為android的可視控制項的繪製都是在View上完成的,所以理解View對理解動畫有很大的協助。

三、簡述View的繪製過程

View的繪製過程分為三個步驟,測量、布局、繪製。

這三個詞很容易理解,下面重點解釋這三個步驟具體跟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的座標系中,然後進行硬體或軟體的繪製。

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.