3.1.控件架构
Android空间分为两类 ViewGroup控件和View控件
如:3.1
上层控件负责下层控件的测量和绘制,并且传递交互事件。
通常在Activity中使用findViewById()方法,就是在空间树中以树的深度优先遍历来查找
通常在setContenView()之后,布局内容才真正显示出来
View objects
都在Android.view package
这些objects有Editext,Spinner,TextView这些action(动作类)的;也有AnalogClock(时针、分针的),Gallery(画廊效果),DataPicker,TimePicker,and VideoView
2.安卓界面的架构图
- 每个Activity包含一个Window对象(一般用PhoneWindow来实现)
- PhoneWindow将DecorView作为根View(作为顶层视图,并且封装了窗口操作的通用方法),进行了具体内容的呈现
- 所有View的监听事件,通过WindowManagerService进行接收,通过Activitty进行onClickListener的回调
- DecorView分为两部分,TitleView和ContentView,后者是一个ID为content的FrameLayout
- 用户可以通过requestWindowFeature(Window.FEATURENO_TITLE)进行全屏设置,视图树中布局就只有Content了,因此一定要在setContentView之前设置
- 在onCreate()调用setContentView()后,ActivityManagerService会调用
onResume()
,此时系统才会将DecorView添加到PhoneWindow中,并显示出来