自定義View的重新繪製和更新

2021-08-15 10:39:35 字數 696 閱讀 9436

自定義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 ...