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...