View的繪制過程詳解
1、當(dāng)測量好一個(gè)View后就可以重寫onDraw()方法,并在Canvas對象上繪制所需的圖形。
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對象用來進(jìn)行繪圖。
Canvas?canvas?=?new?Canvas(bitmap);
bitmap用來存儲所有繪制在Canvas上的像素信息。
由源碼:View的繪制過程有以下幾步:
1)繪制背景(background.draw(canvas))
2)繪制自己(omDraw())
3)繪制children(dispatchDraw)
4)繪制裝飾(onDrawScrollBars(for instance))
View繪制過程的傳遞通過dispatchDraw來實(shí)現(xiàn),遍歷調(diào)用所有子元素的draw方法,draw時(shí)間一層層傳遞下去。
?
Public Constructors |
---|