View的繪制過(guò)程詳解
1、當(dāng)測(cè)量好一個(gè)View后就可以重寫(xiě)onDraw()方法,并在Canvas對(duì)象上繪制所需的圖形。
public class
Canvas
extends Object
java.lang.Object
????
android.graphics.CanvasCanvas()Construct an empty raster canvas.
Canvas(Bitmap bitmap)Construct a canvas with the specified bitmap to draw into.
?
Class Overview
The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text, Bitmap), and a paint (to describe the colors and styles for the drawing).
?
2、onDraw
?protected void onDraw (Canvas canvas)
Implement this to do your drawing.
參數(shù)Canvas canvas對(duì)象用來(lái)進(jìn)行繪圖。
Canvas?canvas?=?new?Canvas(bitmap);
bitmap用來(lái)存儲(chǔ)所有繪制在Canvas上的像素信息。
由源碼:View的繪制過(guò)程有以下幾步:
1)繪制背景(background.draw(canvas))
2)繪制自己(omDraw())
3)繪制children(dispatchDraw)
4)繪制裝飾(onDrawScrollBars(for instance))
View繪制過(guò)程的傳遞通過(guò)dispatchDraw來(lái)實(shí)現(xiàn),遍歷調(diào)用所有子元素的draw方法,draw時(shí)間一層層傳遞下去。
?
Public Constructors |
---|