首先理清View和ViewGroup之間的關係:canvas
如圖所示:繼承
ViewGroup是裝載View的容器生命週期
View類是全部View或者ViewGroup的頂級父類容器
從新View通常要繼承View重寫方法:方法
onDraw(Canvas canvas)在畫布上繪製你View的樣子im
重寫ViewGroup通常要繼承ViewGroup重寫方法:img
測量ViewGroup的大小和設置ViewGroup和子View的大小:onMeasure(int widthMeasureSpec, int heightMeasureSpec)控件
設置子View的位置:onLayout(boolean changed, int l, int t, int r, int b)
若是你想或者控件的大小,你在初始化的時候獲取寬和高都爲零你應該在onSizeChanged這個方法中獲取寬高
View的生命週期