戲說View的繪製流程

2021-06-29 05:00:59 字數 707 閱讀 1736

android城中的老張今年收成不錯,玉公尺,麥子收了倉溢庫滿;日子過得紅火不說,幾個兒子也比較爭氣,工作沒幾年就都帶了個女朋友回家;

沒辦法兒子大了房子住不下了,必須重新的蓋房不是;

咱老百姓不就圖個兒孫滿堂嘛,蓋房子立即提上了老兩口的議事日程;

老張量了下前年新分的宅基地:2560x1440;

為了體現民主老張組織幾個兒子開了個會,讓大家自己根據需要自主的確定房間的面積;

每個兒子拿到了任務都叫上了自己的女朋友規劃自己的房間(onmeasure);

天一亮幾個兒子都把自己的圖紙給了老張,老張一看嚇一跳二兒子心比天高,竟然比大哥要的面積還大;

這怎麼行,還沒個長幼之分了,老張又給二兒子加了個新要求(measurespec.at_most),最多只能有大哥的一樣大,自己再重新計算圖紙;

沒辦法,二兒子又重新規劃了自己房間的圖紙(重複的onmeasure);

圖紙風波過了,老張就負責在宅基地上分別地標出幾個兒子房間的位置(layout);

標註好之後通知幾個兒子來看下他們的房間還有需要做內部調整的沒有(onlayout);

除了小兒子在不影響大局的情況下把窗戶的朝向改變了一下外,大家都一致通過;

接下來全家就要開始蓋房子了(draw);

老張老了,重活幹不了,只能幾個兒子自己幹了(ondraw);

大家都在自己規劃區域內,熱火朝天的幹著;

老兩口看著這場面,留下了幸福的熱淚。

View 的繪製流程

view的measure 過程由其measure方法完成,measure 方法是乙個final型別的方法,子類不能重寫。在view的mesure方法中會呼叫onmeasure 我們只看onmeasure方法就可了。view原始碼 protected void onmeasure int widthm...

筆記 view的繪製流程

其中viewgroup decorview 的measure方法中會呼叫到他的onmeasure方法,在這個方法中會呼叫所有子元素的measure方法來對子元素進行測量寬和高,這樣就把測量流程傳遞到子元素中,子元素重複父容器的測量流程,從而把所有view都進行測量 layout和draw流程和mea...

View的繪製機制

view樹的繪製流程,其實就是乙個遞迴的過程 過程 measure layout draw 對所有子元素進行測量,測量過程從父viewgroup傳到view中,測量好了所有的子元素之後,進行遞迴,反覆之後,就完成了父元素viewgroup的測量。layout相類似 遍歷過程 根據父容器對子容器的一些...