Android ViewRoot、DecorViewWindow浅析
目录
- 简介
- 目录
- 1、VeiwRoot
- 1.1、简介
- 1.2、特别注意
- 2、DecorView
- 2.1、定义
- 2.2、作用
- 2.3、特别说明
- 3、Window
- 4、Activity
- 5、之间关系
- 5.1、总结
- 5.2、之间的关系
简介
- DecorView为整个Window界面的最顶层View。
- DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。
- LinearLayout里有两个FrameLayout子元素。
- (20)为标题栏显示界面。只有一个TextView显示应用
- (21)为内容栏显示界面。就是setContentView()方法载入的布局界面,加入其中。
目录
1、VeiwRoot
1.1、简介
1.2、特别注意
// 在主线程中,Activity对象被创建后:
// 1. 自动将DecorView添加到Window中 & 创建ViewRootImpll对象
root = new ViewRootImpl(view.getContent(),display);// 3. 将ViewRootImpll对象与DecorView建立关联
root.setView(view,wparams,panelParentView)
2、DecorView
2.1、定义
顶层View,即 Android 视图树的根节点;同时也是 FrameLayout 的子类。
2.2、作用
显示 & 加载布局。View层的事件都先经过DecorView,再传递到View。
2.3、特别说明
内含1个竖直方向的LinearLayout,分为2部分:
- 上 = 标题栏(titlebar)
- 下 = 内容栏(content)
在
Activity
中通过setContentView()
所设置的布局文件其实是被加到内容栏之中的,成为其唯一子View = id
为content
的FrameLayout
中。
注:获取setContentView()设置的View代码如下:
// 在代码中可通过content得到对应加载的布局// 1. 得到content
ViewGroup content = (ViewGroup)findViewById(android.R.id.content);
// 2. 得到设置的View
ViewGroup rootView = (ViewGroup) content.getChildAt(0);
3、Window
4、Activity
5、之间关系
ViewRoot、DecorView、Window和Activity的关系非常重要。
5.1、总结
5.2、之间的关系
Android ViewRoot、DecorViewWindow浅析相关推荐
- 键盘android,Android键盘系统浅析(上)
Android键盘系统浅析(下) 通过往着几个文件中插桩,从模拟器的启动日志,我们可以更直观的开到整个Android键盘系统的建立: -------.. I/SystemServer( 57): ...
- Android应用框架浅析
http://blog.csdn.net/yanbober/article/category/3206943 Android应用层View绘制流程与源码分析 http://blog.csdn.ne ...
- android 动画 alpha,浅析Android 动画之AlphaAnimation应用操作
作为程序员不管是为了什么,或多或少都会模仿其他人的一些手法来达到效果,程序员都必须要做出各种绚丽的动画画面来吸引大家,下面是爱站技术频道小编浅析 动画之AlphaAnimation应用操作,一起来了解 ...
- Android Clean 架构浅析
该原创文章首发于微信公众号"字节流动" Android 常用的架构主要有 MVC,MVP,MVVM 以及 Clean .以上架构设计模式没有绝对的优劣之分,关键要看具体的应用场景. ...
- Android Binder机制浅析及AIDL的使用
参考 轻松理解 Android Binder,只需要读这一篇 图文详解 Android Binder跨进程通信的原理 Android中的Parcel是什么 Android Binder IPC通信机制 ...
- Android L 漫游浅析
这篇文章主要是分析在Android L 源代码中对手机漫游的处理.当然我这里所说的漫游指的是国际漫游.通常我们判断手机是否在国际漫游,第一个想法就是比较网络上获取的MCC+MNC是否与手机中的IMSI ...
- android camera工程师,浅析Android Camera架构
本博文是基于Android 4.4讲解 1.application 层: 当我们Android工程师想打开camera时通常直接调用Camera.java中的 Camer.open(cameraId ...
- Android.bp 语法浅析-Android10.0编译系统(八)
摘要:Blueprint解析Android.bp到ninja的代码流程时如何走的? 阅读本文大约需要花费18分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Andro ...
- Android 蓝牙开发浅析
Android Bluetooth API 翻译http://wenku.baidu.com/view/518414b069dc5022aaea007b.html?from=rec&pos=2 ...
最新文章
- Cytoscape: MCODE增强包的网络模块化分析
- HDU 3625 Examining the Rooms【第一类斯特灵数】
- 他让张一鸣登门请教,培养出戴文渊李沐陈天奇,创建了传说中的上海交大ACM班...
- 在Mac OS环境下安装MySQL服务
- 给 Javascript 加上面向对象的属性:Class.js
- VTK:模型之Finance
- H5网页App和纯原生的App差距在哪?
- oracle查询案例,2道经典的oracle查询案例
- 题目管理后台系统_中后台产品最爱的后台:CMS(社区)管理系统搭建
- 计算机ppt板块正文文本动画在哪,《计算机应用基础》统考辅导第章PowerPoint电子演示文稿.ppt...
- Windows配置MinGW环境变量
- python模块之feedparser学习使用
- 德标螺纹规格对照表_德标 国标,国际标准中英文对照表
- 依云工资查询系统升级至6.4
- win7系统配置时间服务器,与Internet时间服务器同步 设Win7精确时间
- PHP在线手册 中文版
- Linux优化学习之Load Average (平均负载)
- Bluetooth Battery Monitor(蓝牙电量监控软件)
- 屏的接口类型种类以及接口定义分析
- C# Windows Service与Timer(计时器)
热门文章
- 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
- 第三节:框架前期准备篇之利用Newtonsoft.Json改造MVC默认的JsonResult
- Qt实现多屏幕多分辨率自适应
- REVERSE-PRACTICE-BUUCTF-19
- 查看linux硬核上的线程,给大家分享一点基础硬核知识哦 Linux的基础指令操作Lin...
- C++自定义迭代器模板,实现ArrayList基本操作,自定义迭代器遍历
- Processing 闪烁的圆 动画效果
- 【CodeForces - 260A】Adding Digits (思维构造)
- 【POJ - 3320 】Jessica's Reading Problem (尺取,哈希)
- 【HDU - 2571】 命运(记忆化搜索)