Android界面的架构图
16lz
2021-01-24
参考文档:http://blog.163.com/xueli_007/blog/static/715336072011522103124253/
http://www.dzsc.com/data/html/2011-6-20/90199.html
1.基本知识:
- 写android应用程序,最基本的就是布局界面。android的布局文件需要写到res/layout文件夹中去,布局文件对应的是一个xml文件。android提供了以下的5中基本布局:
- FrameLayout(帧布局):里面只可以有一个控件,并且不能设计这个控件的位置,后叠加的布局控件会放到左上角。后加进来的控件会覆盖之前的控件。
- LinearLayout(线性布局):又可以分为水平的,也可以分为垂直布局
- TableLayout(表格布局):这个要和TableRow配合使用,很像html里面的table
- AbsoluteLayout(绝对布局):可以自己定义控件的x,y的位置
- RelativeLayout(相对布局):控件的位置都是相对位置。
2.控件的架构:
- android控件中大致可以分为两类:一个是ViewGroup,一个是View控件。ViewGroup作为父控件,里面可以包含多个View控件,并且管理这些包含的View控件。通过ViewGroup,整个界面上的控件形成了一个树形的控件树,父控件对子控件有绝对的掌控权,每个子控件的占地面积和位置,都是基于父控件来分配的,上层控件控制下层控件的测量和绘制,并且传递交互事件。通常在Activity中使用的findViewById()方法,就是在控件树上以树的的深度优先遍历来查找对应的控件元素。在每一个树的顶部,都有一个ViewParent对象这是控件树的核心,所有的交互管理事件都是由他来进行统一的调度的,从而可以对整个师徒进行整体的控制。如下的控件树:
- 每一个Activity中都包含一个Window对象,在Android中window对象通常是由PhoneWindow来实现的。PhoneWindow将一个DecorView设置为整个应用窗口的根View。DecorView作为窗口界面的顶层视图,封装了一些窗口操作的基本方法。将要显示的具体内容呈现在PhoneWindow上,我们的View的监听事件都是由WindowMangerService来进行接收,并且通过Activity的对象来回调相应的onClickListener.在显示上。它将屏幕分成两部分:一个是titleView,另外一个就是ContentView。如下的视图:
由第三幅图也可以知道。一个界面通常是由titleBar和content两部分组成。所以当我们要设置requestWindowFeature(Window.FEATURE_NO_TITLE)来设置全屏显示,也就是视图树中只有content的内容。所以我们的requestWindowFeature(Window.FEATURE_NO_TITLE一定要在setContentView()方法之前去调用才能生效。
更多相关文章
- android ViewGroup代码里addView时,子View的布局设置wrap_content
- android 广告栏 viewpager
- Android开发:Android简单通用BaseFragment基类的封装
- android 中webview的屏幕适配问题
- android 自定义视图——onMeasure,MeasureSpec源码 流程 思路详解
- Android(安卓)动态设置控件的布局
- Android开源项目推荐之【图片选择器】
- android 性能优化 小技巧
- Android(安卓)重写ViewGroup 分析onMeasure()和onLayout()方法