測量乙個view主要關心的2個屬性:1.view的模式 2view的尺寸
mesasurespc 用來存放這2個屬性
view的模式有3個
mode_mask :11 00000 00000 00000 00000 00000 00000
~mode_mask: 00 11111 11111 11111 11111 11111 11111
private static final int mode_shift = 30; 位移的位數
/**
* measure specification mode: the parent has not imposed any constraint
* on the child. it can be whatever size it wants.
*/public static final int unspecified = 0 << mode_shift;
0左移30位 代表00 00000 00000 00000 00000 00000 00000
父容器不對view做任何限制,系統內部使用
/** * measure specification mode: the parent has determined an exact size
* for the child. the child is going to be given those bounds regardless
* of how big it wants to be.
*/public static final int exactly = 1 << mode_shift;
1左移30位 代表01 00000 00000 00000 00000 00000 00000
父容器檢測出view的大小,view的大小就是specsize layoutparams match_parent 固定大小
/** * measure specification mode: the child can be as large as it wants up
* to the specified size.
*/public static final int at_most = 2 << mode_shift;
2也就是10 左移30位 代表10 00000 00000 00000 00000 00000 00000
父容器指定乙個可用大小,view的大小不能超過這個值,layoutparams wrap_content
mode+size= measurespec
viewgroup的測量過程
measure-->onmeasure(測量子控制項寬高)-->setmeasuredimension-->setmeasuredismensionraw(儲存自己的寬高)
view 的測量過程
measure-- >onmeasure-->setmeasuredimension-->setmeasuredimensionraw(儲存自己的寬高)
viewgroup的繪製流程
1.繪製背景 drawbackground(canvas)
2.繪製自己ondraw(canvas)
3.繪製子view dispatchdraw(canvas)
4.繪製前景,滾動條等裝飾ondrawforeground(canvas)
view的繪製過程
1.繪製背景 drawbackground(canvas)
2.繪製自己ondraw(canvas)
3.繪製前景,滾動條等裝飾ondrawforeground(canvas)
viewgroup 布局過程
layout(確定自己的位置,4個點位置)->onlayout(j進行字view的布局)
view的布局過程
layout(確定自己的位置,4個點位置)
自定義布局的 時候需要實現3個方法
onmeasure-->onlayout(容器)->ondraw()
自定義控制項學習筆記(2 3)
一 三種方法 protected virtual void render htmltextwriter writer 編寫客戶端的呈現 protected virtual void renderchildren htmltextwriter 輸出伺服器控制項的子級內容 protected virtu...
學習筆記之自定義控制項
學習初衷 在工作實際開發過程中,原有的安卓控制項已不能滿足實際的功能需求,而且有些應用還需要一些獨特的展示效果,這時就需要自定義控制項來定製控制項去滿足我們的需求了。public class customview extends view public customview context cont...
自定義控制項學習筆記(2 3)
一 三種方法 protected virtual void render htmltextwriter writer 編寫客戶端的呈現 protected virtual void renderchildren htmltextwriter 輸出伺服器控制項的子級內容 protected virtu...