view onmeasure:0&&0
view onmeasure:0&&0
viewgroup onmeasure:0&&0
view onmeasure:0&&0
view onmeasure:0&&0
viewgroup onmeasure:0&&0
viewgroup onsizechanged:100&&100
view onsizechanged:0&&19
view onlayout:0&&19
view onsizechanged:0&&19
view onlayout:0&&19
viewgroup onlayout:100&&100
view onmeasure:0&&19
view onmeasure:0&&19
viewgroup onmeasure:100&&100
view onmeasure:0&&19
view onmeasure:0&&19
viewgroup onmeasure:100&&100
view onlayout:0&&19
view onlayout:0&&19
viewgroup onlayout:100&&100
viewgroup drawchild
viewgroup drawchild
簡單的說乙個view從無到有需要三個步驟,onmeasure、onlayout、ondraw,即測量大小、放置位置、繪製三個步驟。而viewgroup的onmeasure、onlayout流程裡,又會遍歷每個孩子,並最終調到孩子的measure()、layout()函式裡。與view不同的是,viewgroup沒有ondraw流程,但有dispatchdraw()流程,該函式最終又呼叫drawchild()繪製每個孩子,調每個孩子view的ondraw流程。
在onmeasure裡可以直接setmeasureddimension(measuredwidth, measuredheight)設定控制項寬和高,這樣不管xml裡咋寫的,最終以此句設定的width和height進行放置、顯示。
View ViewGroup的測量 布局 繪製流程
注 1 為了方便描述,假定現在有三層布局,分別為 最外層view1 第二層view2 第三層view3 2 下面 測量子控制項 布局子控制項 繪製子控制項 的思路都是 用for迴圈遍歷子控制項,呼叫子控制項的measure layout draw 方法。下面就不對此進行解釋。measure int ...
自定義View ViewGroup流程
一 自定義view 1.onmeasure int widthmeasurespec,int heightmeasurespec int wspecmode measurespec.getmode widthmeasurespec int wspecsize measurespec.getsize ...
長呼叫與短呼叫 呼叫門
cs裡的是乙個段選擇子 1 拆分段選擇子,查gdt表 2 該段描述符為系統描述符,s位為0,type為1100,是乙個門描述符 dpl必須為3,不然該描述符的許可權檢查過不去 3 該描述符的16到31位為另外乙個段描述符的選擇子 決定是否提權 另外乙個段描述符 必須是 段 dpl決定是否提權 長呼叫...