Android ViewGroup 的繪製流程

2021-09-13 01:32:33 字數 906 閱讀 6954

1, viewgroup的繪製流程

測量 -----排版 -----繪製

測量相同點:都是通過onmeasure方法進行測量

不同點:當繼承viewgroup的時候需要在onmeasure方法裡面完成對孩子的測量工作

排版相同點都是通過layout方法進行排版

不同點: 需要對孩子進行排版

繪製相同點 都是通過draw方法進行繪製       

不同點.當我們繼承viewgroup的時候不需要重寫畫孩子的方法,當我們繼承view的時候需要重寫ondraw方法往view上畫內容

總結:    當我們定義類繼承view的時候 我們只需要重寫onmeasure 和 ondraw方法

當我們定義類繼承viewgroup的時候 我們只需要重新onmeasure方法和onlayout方法

2 getwidht和getmeasuredwidth的區別

getwidth是當布局(排版後)才可以獲取寬度  

getmeasuredwidth是測量後才可以獲取寬度

2,會預設繼承onlayout方法

如果沒設定onmeasure 進行測量沒有onlayout,找不到自己定義的viewgroup裡面的孩子,無法顯示

public class myviewgroup extends viewgroup 

//在這個方法裡面對孩子進行排版

@override

protected void onlayout(boolean changed, int l, int t, int r, int b)

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)

}

UIView的繪製原理 和 非同步繪製的實現

uiview 繪製原理 1 當我們呼叫 uiview setneedsdisplay 這個方法時,其實並沒有立即進行繪製工作,系統會立即呼叫calayer的同名方法,並且在當前layer上打上乙個標記,然後會在當前runloop將要結束的時候呼叫calayer display 這個方法,然後進入檢視...

python繪製彩色花 AI繪製非常漂亮的彩色花朵

這篇教程像指令碼之家的朋友們介紹用ai繪製漂亮花朵的方法。ai的強大功能支援,讓我們在做許多任務作時事半功倍。關鍵看大家是否想到這樣的方法!希望這篇教程能啟發大家的思路!我們先來看看最終的效果圖 1開啟ai,新建。用鋼筆畫個弧,對稱複製,連線兩個定點 物件 路徑 連線 葉子完成 2.複製一片葉子,旋...

cad怎麼繪製中線 cad繪製中線的方法

cad怎麼繪製中線 cad繪製中線的方法 1.cad中心線一般為點劃線,畫法很簡單,我們先來設定線型。首先開啟cad,點選計入圖層特性管理器。2.在圖層特性管理器中點選線型進行設定。3.在選擇線型中點選載入。4.選擇合適的中心線然後確定。5.在選擇線型中點選選擇剛才載入的點劃線,然後點選確定。6.在...