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


更多相关文章

  1. android ViewGroup代码里addView时,子View的布局设置wrap_content
  2. android 广告栏 viewpager
  3. Android开发:Android简单通用BaseFragment基类的封装
  4. android 中webview的屏幕适配问题
  5. android 自定义视图——onMeasure,MeasureSpec源码 流程 思路详解
  6. Android(安卓)动态设置控件的布局
  7. Android开源项目推荐之【图片选择器】
  8. android 性能优化 小技巧
  9. Android(安卓)重写ViewGroup 分析onMeasure()和onLayout()方法

随机推荐

  1. Android settings.db数据库中添加一条新
  2. cron4j 在android实现任务调度
  3. Android原生集成react-native(-)
  4. Android系统默认Home应用程序(Launcher)的
  5. Android 蓝牙 资料
  6. 阿里架构师最新 Android 面试点梳理,我收
  7. 常用的Android(安卓)Widget组件学习②-Ed
  8. Android中ListView添加事件并获取选中项
  9. FrameLayout的使用——android开发之xml
  10. android 胡言乱语 2 android UI