教你搞定Android自定義View

2021-07-02 23:07:59 字數 1340 閱讀 8857

android所有的控制項都是view或者view的子類,它其實表示的就是螢幕上的一塊矩形區域,用乙個rect來表示,left,top表示view相對於它的parent view的起點,width,height表示view自己的寬高,通過這4個字段就能確定view在螢幕上的位置,確定位置後就可以開始繪製view的內容了。

view的繪製可以分為下面三個過程:

整個view的繪製流程我們已經介紹完了,還有乙個很重要的知識,自定義控制項屬性,我們都知道view已經有一些基本的屬性,比如layout_width,layout_height,background等,我們往往需要定義自己的屬性,那麼具體可以這麼做。

那麼到底怎麼用呢,我們會看乙個例項。

為了簡單起見,這裡我只用一種顏色,多種顏色就留給大家了,我們直接上**。

藍色的進度條

public class rainbowbar extends view 

public rainbowbar(context context, attributeset attrs)

public rainbowbar(context context, attributeset attrs, int defstyleattr)

.......

}

view有了三個構造方法需要我們重寫,這裡介紹下三個方法會被呼叫的場景,

因為我們這裡不用關注measrue和layout過程,直接重寫ondraw方法即可。

//draw be invoke numbers.

int index = 0;

@override

protected void ondraw(canvas canvas) else

float start = startx;

// draw latter parse

while (start < sw)

start = startx - space - hspace;

// draw front parse

while (start >= -hspace)

if (index >= 700000)

invalidate();

}//布局檔案

教你搞定Android自定義ViewGroup

我們知道viewgroup就是view的容器類,我們經常用的linearlayout,relativelayout等都是viewgroup的子類,因為viewgroup有很多子view,所以它的整個繪製過程相對於view會複雜一點,但是還是三個步驟measure,layout,draw,我們一次說明...

教你搞定Android自定義ViewGroup

我們知道viewgroup就是view的容器類,我們經常用的linearlayout,relativelayout等都是viewgroup的子類,因為viewgroup有很多子view,所以它的整個繪製過程相對於view會複雜一點,但是還是三個步驟measure,layout,draw,我們一次說明...

Android 6步教你自定義View

標籤 android view 2017 02 09 17 00 119人閱讀收藏 舉報 android 203 目錄 如果你打算完全定製乙個view,那麼你需要實現view類 所有的android view都實現於這個類 並且實現確定尺寸的onmeasure 方法和確認繪圖的ondraw 方法。p...