电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

androidview原理视图状态绘制流程自定义view

androidview原理视图状态绘制流程自定义view_第1页
1/10
androidview原理视图状态绘制流程自定义view_第2页
2/10
androidview原理视图状态绘制流程自定义view_第3页
3/10
U I 框架基本概念: Activity 基本的页面单元,Activity包含一个Window,window 上可以绘制各种view View 最基本的UI 组件,表示屏幕上的一个矩形区域; Window 表示顶层窗口,管理界面的显示和事件的响应;每个Activity 均会创建一个 PhoneWindow 对象,是Activity和整个View 系统交互的接口。 PhoneWindow 该类继承于 Window 类,同时,PhoneWindow 类内部包含了一个DecorView 对象。简而言之,PhoneWindow 是把一个FrameLayout 进行了一定的包装,并提供了一组通用的窗口操作接口。 DecorView Window 中 View 的RootView,设置窗口属性;该类是一个FrameLayout 的子类,并且是PhoneWindow 中的一个内部类。Decor 的英文是Decoration,即“修饰”的意思,DecorView 就是对普通的FrameLayout 进行了一定的修饰,比如添加一个通用的Title bar,并响应特定的按键消息等。 ViewRoot 并不是一个View 类型,而是一个Handler。 A. 向 DecorView 分发收到的用户发起的event 事件,如按键,触屏,轨迹球等事件; B. 与 WindowManagerService 交互,完成整个Activity的GUI 的绘制 关系图 View树的绘图流程 整个View 树的绘图流程是在ViewRoot.java 类的performTraversals()函数展开的,该函数做的执行过程可简单概况为: 根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘 (draw),其框架过程如下 : View 树 的 结 构 , 对 每 个 具 体 View 对 象 的 操 作 , 其 实 就 是 个 递 归 的 实 现 。 mesarue():为 整 个 View 树 计 算 实 际 的 大 小 , 即 设 置 实 际 的 高 (对 应 属性 :mMeasuredHeight)和 宽 (对 应 属 性 : mMeasureWidth), 每 个View 的 控 件 的 实 际 宽 高 都 是 由 父 视 图 和 本 身 视 图 决 定 的 。 layout:根 据 子 视 图 的 大 小 以 及 布 局 参 数 将 View 树 放 到 合 适 的 位 置 上 draw():ViewRoot 对 象 的 performTraversals()方 法 调 用 draw()方 法 发 起 绘制 该 View 树 , 值 得 注 意 的 是 每 次 发 起 绘 图 时 , 并 不 会 重 新 绘 制 每 个View 树 的 视 图 , 而 只 会 重 新 绘 制 那 些 “需要...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

androidview原理视图状态绘制流程自定义view

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部