自定義View的最基本的三個方法分別是:onMeasure(),onLayout()、onDraw();View在Activity中顯示出來,要經歷測量、布局、繪制三個步驟,分別對應三個動作:measure、layout和draw。
視圖View主要分為兩類
系統自帶的View可以在xml中配置屬性,對於寫的好的自定義View同樣可以在xml中配置屬性,為了使自定義的View的屬性可以在xml中配置,需要以下4個步驟:
1、通過<declare-styleable>為自定義View添加屬性
2、在xml中為相應的屬性聲明屬性值
3、在運行時(壹般為構造函數)獲取屬性值
4、將獲取到的屬性值應用到View
Android的坐標系定義為:
測量規格,封裝了父容器對View的布局上的限制,內部提供了寬高的信息(SpecMode、SpecSize),SpecSize是指在某種SpecMode下的參考尺寸,其中SpecMode有如下三種:
通過將SpecMode和SpecSize 打包成壹個int值可以避免過多的對象內存分配 ,為了方便操作,其提供了打包/解包方法。
MeasureSpec值到底是如何計算得來的呢?
子View的MeasureSpec值是根據子View的布局參數(LayoutParams)和父容器的MeasureSpec值計算得來的,具體計算邏輯封裝在getChildMeasureSpec()裏
官方解釋:用於管理Activity和Fragment的生命周期
其實Lifecycles的功能就是使業務組件能夠感知Activity和Fragment的生命周期。