View 的软件绘制和硬件绘制

2022/1/3 6:11:19

本文主要是介绍View 的软件绘制和硬件绘制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

View 的软件绘制和硬件绘制

开发 android 应用的时候,常有一些问题会涉及到 “硬件加速” ,例如在某个页面上打开/关闭硬件加速来解决特定问题。那么今天就简单说下具体 硬件绘制 相关的一些内容。

应用里的页面是以一棵棵 View 树表示的,其中每个 view 代表屏幕上一块内容。而实际显示的内容便是 view 绘制出来的,view 的绘制是从 view 树的逻辑控制者——也就是对应的 ViewRootImpl 对象触发的。其中包括软件绘制和硬件绘制两种方式。

当 ViewRootImpl 设置了 开启硬件加速 的时候,会使用硬件绘制的方式进行绘制,否则使用软件绘制。硬件绘制和软件绘制类似于对同一个接口的两种实现。其基本的绘制步骤都一样的,只是两种绘制方式里每个步骤实现不同。

View 的软件绘制

View 的软件绘制和硬件绘制的核心是 draw,也就是通常所说的 measure-layout-draw 中的 draw ,也就是绘制流程。即遍历 view 树,自上向下遍历依次调用 draw。其中会涉及 view 的绘制过程以及向下分发等。

在此 draw 的流程之前以及之后,需要进行一些处理。大家都知道 draw 是依赖于画布 canvas 的,canvas 只有在获取之后才可以进行 draw,并且 draw 完成后需要将 canvas 交给实际绘制到屏幕上的下一个环节。



这篇关于View 的软件绘制和硬件绘制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程