Android View System概论
来源:互联网 发布:国外数据新闻案例分析 编辑:程序博客网 时间:2024/06/07 18:45
Android View可能是Android中最复杂的部分
Android View System 的职责
- 测量各个UI元素的尺寸
- 确定各个UI的位置
- 内容发生变化时重绘
- 接收事件、分配事件
- 处理来自wms的很多和窗口状态有关的回调
脱离了Activity的View
日常中View和Activity脱不离关系(Activity.setContentView)。先看一个另类的方法:
//在一个Service中调用 final WindowManager wm= (WindowManager)getSystemService(Context.WINDOW_SERVICE); final Button btn = new Button(getBaseContext()); btn.setText("click me!"); WindowManager.LayoutParams params = new WindowManager.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.gravity = Gravity.CENTER; params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL; params.type = WindowManager.LayoutParams.TYPE_PHONE; wm.addView(btn,params);
WindowManager继承自ViewManager,实际上是一个接口。可以看做是WMS的代理类。
View的组成部分(Framework层)
其实,控件系统实际可以看做是View的一系列子类和WindowManager两个部分。
WindowsManagerImpl
实际上也是一个代理类,工作交给了WindowManagerGlobal,
负责保存Display 和 Window
WindowManagerGlobal
单例模式
保存进程内的所有view。
具体的工作还是交给了RootViewImpl完成。
ViewRootImpl
View系统中最重要的一环
控件系统的心跳
performTravesal()
此方法的主要步骤划分:
1. 预测量
2. 布局窗口
3. 最终测量
4. 布局控件树
5. 绘制
0 0
- Android View System概论
- android View System touch 事件分发流程
- android system traceview 和 hierarchy view
- 第一章:Android概论解析
- android QMI机制---概论
- Android Framework 深入浅出-HAL, Binder, View System 与 Native Service
- operating system -->operating system view
- 【View System】LayoutParams
- SEGGER System View
- android MVC,MVP,MVVM概论
- 概论
- 概论
- 概论
- View DNS in Linux system
- android.support.v4.view.ViewPager in loader dalvik.system.PathClassLoader[/data/app/com.test.guide-2
- Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClass
- 【Exception】java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClass
- Fragment:java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLo
- 桌面web
- Hbase配置安装
- 门诊信息管理系统
- IDL
- StringBuffer_StringBuilder
- Android View System概论
- A*算法
- allegro reuse功能
- “娇娇”这把火, 烧得整个机器人圈脸疼
- 数组排序与查找
- JFrame(框架)中添加和设置JPanel(面板
- 2011.6-2012
- 数据类型转换
- 初识A*算法