Android View 如何繪製

2021-09-08 17:59:06 字數 1504 閱讀 7047

上文說道了android如何測量,但是乙個漂亮的控制項我只知道您長到哪兒,這當然不行。只需要簡單重寫ondraw方法,並在canvas(畫布)物件上呼叫那根五顏六色的畫筆就能夠畫出這控制項"**"的外表。那麼view又是如何進行繪製了?

要了解view如何繪製,就需要了解canvas(畫布)是什麼?paint(畫筆)能夠做什麼。

ⅰ、canvas就是表示一塊畫布,你可以在上面畫你所朝思暮想的東西。當我們重寫ondraw方法的時候,就能夠拿到乙個canvas物件,這個就是你的舞台,畫你所思所想。上**了。

@override

protected void ondraw(canvas canvas)

當您需要對某某控制項進行進行重新繪製的時候,我們只需要在這個大舞台(canvas)呼叫canvas.draw***方法畫出各種各樣的圖形。

ⅱ、paint就是畫布上揮灑自如的畫筆。要畫圖,得調整畫筆,待畫筆調整好之後,再將影象繪製到畫布上,這樣才可以顯示在手機螢幕上。paint上提供許多屬性和方法用來設定畫筆。

1、setantialias: 設定畫筆的鋸齒效果。 

2、setcolor: 設定畫筆顏色 

3、setargb:  設定畫筆的a,r,p,g值。 

4、setalpha:  設定alpha值 

5、settextsize: 設定字型尺寸。 

6、setstyle:  設定畫筆風格,空心或者實心。 

7、setstrokewidth: 設定空心的邊框寬度。 

8、getcolor:  得到畫筆的顏色 

9、getalpha:  得到畫筆的alpha值。 

我們既然知道了畫筆與畫布,通過乙個短小精悍的例子來看畫布和畫筆怎麼共同作用出乙個想要的圖形。老樣子,上**:

public

class myview extends

view

private

void

init()

@override

protected

void onmeasure(int widthmeasurespec, int

heightmeasurespec)

public

int measurewidth(int

measurespec)

else

}return

result;

}@override

protected

void

ondraw(canvas canvas)

}

上述**,我們做了這麼幾件事了:

ⅰ、我們運用上篇文章的知識,重寫了onmeasure方法,讓這個簡單自定義控制項自適應wrap_content屬性。

ⅱ、我們呼叫了ondraw方法,拿到canvas與paint,在view上寫了"中國"文字。

最終執行效果為:

Android View 如何繪製

上文說道了android如何測量,但是乙個漂亮的控制項我只知道您長到哪兒,這當然不行。只需要簡單重寫ondraw方法,並在canvas 畫布 物件上呼叫那根五顏六色的畫筆就能夠畫出這控制項 的外表。那麼view又是如何進行繪製了?要了解view如何繪製,就需要了解canvas 畫布 是什麼?pain...

android view繪製過程

簡單描述可以解釋為 計算大小 measure 布局座標計算 layout 繪製到螢幕 draw 下面看看每一步的動作到底是什麼,第一步 當activity啟動的時候,觸發初始化view過程的是由window物件的decorview呼叫view 具體怎樣從xml中讀取是用layoutinflater....

android View繪製流程

android的view的繪製流程大概就如同我們作畫一樣,分為以下幾步 1.測量出每個view的大小。2.根據上一步測量得到的大小,確定view繪製的座標位置。3.有了具體的位置及view大小,開始繪製view。我們的activity在建立的時候就會對應的建立乙個window,用於展示我們需要展示的...