Android界面的架构图

来源:互联网 发布:linux中录入历史字符 编辑:程序博客网 时间:2024/06/06 01:32

          参考文档: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()方法之前去调用才能生效。


0 0
原创粉丝点击