自定義view繼承view和viewgroup
重寫onmeasure(),ondraw()和onlayout()方法
在onmeasure()方法中進行測量出自定義控制項的寬和高並且呼叫setmeasuredimension(width,height)方法,將寬高配置好
然後再onlayout()方法,確定自定義控制項在布局中的位置
最後呼叫ondraw()方法來將自定義view繪製在布局中。
重點來了:
很多時候我們需要改變控制項的寬高,可能還會改變內容。
這時候需要使用到view的
requestlayout()方法和
invalidate()方法
需要注意到是這兩個方法的使用順序:
必須先呼叫requestlayout()方法再呼叫invalidate()方法
解釋一下這是為啥理~~~
在呼叫request layout()方法的時候,view只會執行onmeasure()方法和onlayout()方法
在呼叫invalidate()方法是,view會執行ondraw()方法
兩個方法執行結束後,自定義控制項就可以重繪和更新了。
注:若只改變寬高呼叫request layout()方法即可,若只更新內容呼叫invalidate()方法。
如何自定義繪製View
關於自定義view時代使用樣式,風格,大小的資源定義不再介紹,這裡注重介紹如何在ondraw canvas canvas 方法中去繪製所需要的view。主要體現在 paint canvas物件的使用 下面主要呈現乙個類似手錶的view的繪製 自定義view如下 package view import...
Android自定義View基礎繪製
1 onmeasure測量 計算寬高 2 viewgroup進行onlayout 基於位置和寬高布置到螢幕 3 ondraw檢視顯示自身內容 渲染 canvas 畫布,可以提供檢視顯示的載體,可以繪製文字 幾何圖形 影象 填充顏色 paint 畫筆,針對畫布需要繪製的內容的修飾 建立畫筆 paint...
自定義View之繪製文字
在初始化方法裡建立畫筆,設定畫筆顏色,不設定預設黑色 mtextpaint new paint mtextpaint.setcolor color.white 在ondraw方法裡繪製文字 canvas.drawtext text,float x,float y offset,mtextpaint ...