自定義控制項

2021-08-30 17:56:03 字數 1124 閱讀 8283

1. 繼承viewgroup

例如:viewgroup、linearlayout、framelayout、relativelayout等。

2. 繼承view

例如:view、textview、imageview、button等。

自定義控制項基本繪製原理:

view的繪製基本上由measure()、layout()、draw()這個三個函式完成

measure呼叫onmeasure,onmeasure測量寬度、高度

measurespec.getsize(widthmeasurespec);// 獲取寬度值

measurespec.getmode(widthmeasurespec);// 獲取寬度模式

measurespec.getmode(heightmeasurespec);// 獲取高度模式

measurespec.getsize(heightmeasurespec);// 獲取高度值

// 按照最新的高度和寬度設定空間寬高

super.onmeasure(widthmeasurespec, heightmeasurespec);

public final void measure(int widthmeasurespec, int heightmeasurespec)

然後呼叫setmeasuredimension儲存測量結果

protected final void setmeasureddimension(int measuredwidth, int measuredheight)

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)

布局-layout過程用於設定檢視在螢幕中顯示的位置,view layout過程相關方法主要要三個:

public void layout(int l, int t, int r, int b)

protected boolean setframe(int left, int top, int right, int bottom)

protected void onlayout(boolean changed, int left, int top, int right, int bottom)

自定義控制項 自定義鐘錶

private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...

自定義控制項

首先是以下這幾項,attribute defaultproperty指定元件的預設屬性,toolboxdata指定當從ide工具中的 工具箱中拖動自定義控制項時為它生成的預設標記 defaultproperty text toolboxdata mycontrol runat server 上面這些...

自定義控制項

新聞管理 using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols namespace ne...