瞭解android的View體系,才知道後面咱們步驟寫Android自定義控件作準備。android
要明白View
和ViewGroup
。markdown
要能判斷經常使用的控件是屬於View
仍是ViewGrop
,接着纔有本身要寫的控件屬於View
仍是ViewGroup
。spa
爲何呢?code
由於自定義View
跟自定義ViewGroup
的步驟,套路不同。orm
Android自定義控件呢,咱們能夠分爲三類:it
自定義組合控件,其實就是把多個如今有控件整合在一塊兒,把複雜的操做封裝起來,把簡單的操做暴露出去。io
好比說咱們要作如下這個控件:table
固然能夠重頭開始繪製,從無到有。class
咱們也可使用兩個button
+ 一個TextView
或者EditText
組合起來。import
而後把複雜的邏輯封裝起來,好比說,上限和下限的判斷,好比說增長梯度,好比說閥值,達到必定的值會改變顏色之類的。這些複雜的操做封裝起來。對外只暴露數據變會的回調通知和設置數值/獲取數值的方法便可。
別人拿到你的控件,不關心怎麼實現,只關心使用便可。
自定義View,什麼是View,從控件的角度來理解,咱們能夠這樣判斷。若是控件裏沒有孩子的,沒有子View的,就是View,好比說Button
,TextView
,ProgressBar
,ImageView
,這些都是View
.
自定義ViewGrop,什麼是ViewGroup,用來包含孩子的,控制子View的擺放的,是容器。ViewGrop裏還能夠包含着ViewGroup和View。好比說,LinearLayout,RetiveLayout,RecyclerView,ListView,ViewPager...這些都是ViewGrop。
好啦,這個只作瞭解,詳情請同窗們看接下來的文章吧!相信你看完之後,會對自定義控件有信心的,加油!