Android窗口机制系列

Android窗口机制(一)初识Android的窗口结构
Android窗口机制(二)Window,PhoneWindow,DecorView,setContentView源码理解
Android窗口机制(三)Window和WindowManager的创建与Activity
Android窗口机制(四)ViewRootImpl与View和WindowManager
Android窗口机制(五)最终章:WindowManager.LayoutParams和Token以及其他窗口Dialog,Toast

窗口结构

Paste_Image.png

说明

  • 每一个Activity都包含一个Window对象,Window对象通常由PhoneWindow实现
  • PhoneWindow:将Decoriew设置为整个应用窗口的根View。是Window的实现类。它是Android中的最基本的窗口系统,每个Activity 均会创建一个PhoneWindow对象,是Activity和整个View系统交互的接口。
  • DecorView:顶层视图,将要显示的具体内容呈现在PhoneWindow上. DecorView是当前Activity所有View的祖先,它并不会向用户呈现任何东西,它主要有如下几个功能,可能不全:
    • A. Dispatch ViewRoot分发来的key、touch、trackball等外部事件;
    • B. DecorView有一个直接的子View,我们称之为System Layout,这个View是从系统的Layout.xml中解析出的,它包含当前UI的风格,如是否带title、是否带process bar等。可以称这些属性为Window decorations。
    • C. 作为PhoneWindow与ViewRoot之间的桥梁,ViewRoot通过DecorView设置窗口属性。//可以这样获取 View view = getWindow().getDecorView();
    • DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。DecorView里面TitleView:标题,可以设置requestWindowFeature(Window.FEATURE_NO_TITLE)取消掉ContentView:是一个id为content的FrameLayout。我们平常在Activity使用的setContentView就是设置在这里,也就是在FrameLayout上

下篇文章将跟大家讲解他们的是如何联系的,以及他们的理解。
Android窗口机制(二)Window,PhoneWindow,DecorView,setContentView源码理解:http://www.jianshu.com/p/e42b638944ae

更多相关文章

  1. Android(安卓)核心分析(13) -----Android(安卓)GWES之Android窗
  2. Android进阶——Android消息机制之Looper、Handler、MessageQuee
  3. 它山之石
  4. CheckedTextView
  5. 更改手机窗口画面底色
  6. Android(安卓)- Binder机制 - client和普通service交互
  7. Android(安卓)Handler机制详解
  8. 欢迎进入郭士超的博客目录(全站式导航)
  9. Android(安卓)- Binder机制 - Binder框架总结

随机推荐

  1. 安卓布局之线性布局(Linearlayout)
  2. Android EditText取消自动焦点获取
  3. 【Android】Android Layout Binder——根
  4. android 绘图
  5. PreferenceActivity、PreferenceFragment
  6. Python on Android
  7. Android关闭多个activity
  8. Android中文API —— VideoView
  9. android studio 3.1 Android Device Moni
  10. JS调用Java代码(Android)