Android 自定义View(一)原理
来源:互联网 发布:mac rar解压软件下载 编辑:程序博客网 时间:2024/06/08 00:08
在Android中,View扮演着很重要的角色,简单说,View是Android在视觉上的呈现。在开发中,每时每刻都在和View打交道,常见的由Android提供使用的有:TextView,ImageView,ListView..等等。如果使用一些酷的效果,当然要我们自定义View了,在自定义View之前,先来简单记录下View的工作原理,帮助以后更好的理解自定义View的使用。
说道View原理,肯定要说道顶层的 ViewRoot 和 DecorView。
一、ViewRoot
ViewRoot 对应于 ViewRootImpl 类,是连接WindowManager 和 DecorView 的纽带,View 的三大流程是通过 ViewRoot 来完成的。在 ActivityThread 中,当 Activity 对象被创建完毕后,会将 DecorView 添加到 Window 中,同时会创建 ViewRootImpl 对象,并将 ViewRootImpl 对象和 DecorView 建立关联。借图说明:
View 的绘制流程是从 ViewRoot 的 performTraversals 方法开始的,经过 Measure、layout 和 draw 三个过程才能将一个View绘制出来,performTraversals 的大致流程:
图所示,performTraversals 会依次调用 ViewGroup 的 三个方法,这个三个方法分别完成 View 的三个方法,反复完成整个View树的遍历。
二、DecorView
DecorView 作为 顶级 View,它本质上是一个FrameLayout,DecorView有唯一一个子View,它是一个垂直LinearLayout,包含两个子元素,一个是TitleView(ActionBar的容器),另一个是ContentView(窗口内容的容器)。关于ContentView,它是一个FrameLayout(android.R.id.content),我们平常用的setContentView就是设置它的子View。上图还表达了每个Activity都与一个Window(具体来说是PhoneWindow)相关联,用户界面则由Window所承载。
总结
主要说了View的工作绘制原理,有图和些简单描述。
Android 自定义View篇:
- Android 自定义View(一)原理
- Android 自定义View(二)方法分析
- Android 自定义View(一)原理
- android自定义View一(基础和原理)
- Android 自定义View(一)
- android-自定义View(一)
- android 自定义view(一)
- Android:自定义View(一)
- Android自定义View(一)
- android 自定义view(一)
- android自定义view(一)
- Android自定义View(一)
- Android自定义View(一)
- Android自定义View(一)
- Android 自定义View(一)
- Android 自定义View(一)
- Android 自定义View(一)
- Android 自定义View原理
- Android读书笔记-----自定义View(1)原理
- Android自定义View(一)
- 训练网络的一些trick(1):pre_train与逐层拷贝网络
- spark sql 处理时间类型
- [YTU]_2443( C++习题 复数类--重载运算符3+)
- MFC 操作 excel
- git学习0
- Android 自定义View(一)原理
- BS结构浏览器网页读写IC卡技术汇总
- day-18 paramiko 实现sftp功能
- BZOJ 1202: [HNOI2005]狡猾的商人
- Linux输入子系统之触摸屏驱动2
- 近一个月的面试总结(java)
- 共祖系数、相关系数和近交系数
- grunt-contrib-connect自动刷新html页面
- 关于ajaxupload.js实现文件上传内容