android中View, Window, Activity, WindowManager,ViewRoot几者之间的关系
来源:互联网 发布:matlab 把矩阵归一化 编辑:程序博客网 时间:2024/04/30 02:04
转自:http://songzhangzhang.blog.163.com/blog/static/694019812011119114235661/
View:最基本的UI组件,表示屏幕上的一个矩形区域。
Window: 表示一个窗口,包含一个View tree和窗口的layout 参数。View tree的root View可以通过getDecorView得到。还可以设置Window的Content View。
Activity包含一个Window,该Window在Activity的attach方法中通过调用PolicyManager.makeNewWindow创建。
WindowManager:一个interface,继承自ViewManager。 有一个implementation class:android.view.WindowManagerImpl。其实WindowManager并不是整个系统的窗口管理器,而是所在应用进程的窗口管理器。系统全局的窗口管理器运行在SystemServer进程中,是一个Service。ViewRoot通过IWindowSession接口与全局窗口管理器进行交互。 将一个View add到WindowManager时,WindowManagerImpl创建一个ViewRoot来管理该窗口的根View。,并通过ViewRoot.setView方法把该View传给ViewRoot。
ViewRoot用于管理窗口的根View,并和global window manger进行交互。ViewRoot中有一个nested class: W,W是一个Binder子类,用于接收global window manager的各种消息, 如按键消息, 触摸消息等。 ViewRoot有一个W类型的成员mWindow,ViewRoot在Constructor中创建一个W的instance并赋值给mWindow。 ViewRoot是Handler的子类, W会通过Looper把消息传递给ViewRoot。 ViewRoot在setView方法中把mWindow传给sWindowSession。
总之,每个窗口对应着一个Window对象,一个根View和一个ViewRoot对象。要想创建一个窗口,可以调用WindowManager的addView方法,作为参数的view将作为在该窗口上显示的根view。
- android中View, Window, Activity, WindowManager,ViewRoot几者之间的关系
- android中View, Window, Activity, WindowManager,ViewRoot几者之间的关系
- android 中View, Window, Activity, WindowManager,ViewRoot几者之间的关系
- android 中View, Window, Activity, WindowManager,ViewRoot几者之间的关系
- View, ViewRoot, Window, WindowManager, Activity
- Android基础建设之Activity,ViewRoot,WindowManager,Window,View
- Android快速理解Activity、View及Window&WindowManager之间关系
- Android快速理解Activity、View及Window&WindowManager之间关系
- Android自定义View专题四 View、Window、WindowManager和Activity之间的关系
- Activity,View,Window和WindowManager之间的关系
- Activity,View,Window和WindowManager之间的关系
- Android 中Activity、Window、ViewRoot、DecorView之间的联系
- Android 中Activity,Window和View之间的关系
- Android 中Activity,Window和View之间的关系
- Android 中Activity,Window和View之间的关系
- Android 中Activity,Window和View之间的关系
- Android 中Activity,Window和View之间的关系
- Android 中Activity,Window和View之间的关系
- Linux更改oracle用户组实验
- ubuntu上配置git服务器
- 加减表达式求值
- mysql字符集转化关系
- 循环队列的实现(C语言)
- android中View, Window, Activity, WindowManager,ViewRoot几者之间的关系
- JQuery Uploadify 上传插件呈现"HTTP Error302"错误的解决办法
- linux下使用yum 安装gcc
- spring之bean属性
- 25个必须记住的SSH命令
- sql中文日期格式转换(xxxx年x月x日)
- 用户权限管理模块【表结构及SQL语句】
- SQL Server 2005 系统监视与性能调优
- 过拟合