从这个分类中开始学习Android 的自定义View相关内容~!
先来整体的了解一下Android 的控件架构吧!
这里通过几张图来简单了解Android的控件架构
看图:一个树形结构(控件树)
1.每个控件树的顶部都有一个ViewParent(控制核心:所有的交互管理事件都由它来统一调度和分配)
2.View:在屏幕上占据一块矩形区域
3.ViewGroup:中可以包含多个View和ViewGroup(ViewGroup extends View)
4.上层控件负责下层控件的测量和绘制
1.每个Activity中都有一个Window对象,Android中通常由PhoneWindow实现
2.PhoneWindow将DecorView置为整个应用窗口的根View(可以理解为:Decor将要显示的具体内容呈现在PhonoeWindow上)
3.DecorView作为根View封装了窗口操作的通用方法
4.监听事件:都是通过WindowManagerService来接收,并通过Activity对象来回调相应的onClickListener
5.ContentView的id为content(setContentView()就是设置它)
1.第二层装载了一个LinearLayout作为ViewGroup
2.requestWindowFeature(Window.FEATURE_NO_TITLE)必须要在setContentView()之前调用,原因就在这里了!
最终显示: 当调用了setContentView()之后,ActivityManagerService会回调onResume();这时系统会把整个DecorView放到PhoneWindow中,让其显示出来!