- 0
- 0
- 约2.07千字
- 约 6页
- 2026-01-26 发布于北京
- 举报
Adroid界面绘制实现
View类包含Surface(变量名mSurface)。Surface中包含CompatibleCanvas(变量名
mCanvas)。CompatibleCanvas继承自Canvas(java.awt.Canvas),其中包含一个矩阵对
象Matrix(变量名mOrigMatrix)。矩阵Matrix就是一块内存区域,针对View的各种绘图
操作都保存在这块内存中。
每个Surface通常对应两个buffer,一个frontbuffer,一个backbuffer。其中,back
__
buffer就是canvas绘图时对应的bitmap(研究androidviewSurface.cpp::lockCanvas)。因
此,绘画总是在backbuffer上,需要更新时,则将backbuffer和frontbuffer互换。
每个surface又对应一个layer,SurfaceFlinger负责将各个layer的frontbuffer合成
(composite)绘制到屏幕上。
用用户接口方面,主要表现任务由View的各种继承类来实现。View类的继承关系如图所示。
界面绘制实现
类包含(变量名)。中包含(变量名)。
继承至(),其中包含一个矩阵对象(变量名
)。矩阵就是一块内存区域,针对的各种绘画操作都保存在此内存
中。
每个通常对应两个,一个一个。其中,就
是绘图时对应的研究。因此,绘画总
是在上,需要更新时,则将和互换。
每个又对应一个负责将各个的合成()
绘制到屏幕上。
用户接口方面,主要表现任务由的各种继承类来实现。类的继承关系如图所示。
当用户请求绘制调用invalidate(),此函数会找到当前View或ViewGroup的ParentView,并
调用父视图的invalidateChild(this,r)。invalidateChild会循环调用父视图的
invalidateChildInParent(),因此层层向上层视图调用,直到调用到根视图ViewRoot。
ViewRoot的invalidateChildInParent调用invalidateChild,然后发送消息让ViewRoot进行绘
制。绘制代码在handleMessage()中的caseDOTRAVERSAL中调用了performTraversals()。
然后调用下一级视图的函数。函数会依次调用以下几个函数:
background.draw(canvas)
onDraw(canvas)
dispatchDraw(canvas)
onDrawScrollBars(canvas)
在ViewGroup的dispatchDraw中会调用drawChild函数。drawChild根据子View的私
有标志位mPrivateFlags来调用子类的draw()或者dispatchDraw(canvas)。由此实现了
层层向下绘制,直到最基本的View。View的dispatchDraw是一个抽象函数,绘制过程
到此结束。最后ViewRoot会调用nativeShowFPS(canvas,nowͲsDrawTime)函数将绘制
结果canvas传递给本地层进行显示。
参考别人的分析,自己大概地看了一遍。框架层看得差不多了,本地层还没有看。等有时间看
了再更新吧。
ZĂĚŝŽƌŽƵƉdĂďtŝĚŐĞƚ
Žƌ
当用户请求绘制调用,此函数会找到当前或的并调
用父视图的。会循环调用父视图的
因此层层向上层视图调用,直到调用到根视图。的
调用,然后发送消息让进行绘制。绘制代码在中的
中调用了。
然后调用下一级视图的函数。函数会依次调用以下几个函数:
在的中会调用函数。根据子的私有标志
位来调用子类的或者。由此实现了层层向下绘制,
直到最基本的。的是一个抽象函数,绘制过程到此结束。最后
会调用Ͳ函数将绘制结果传递给本地
层进行显示。
参考别人的分析,自己大
您可能关注的文档
- 碰撞后气囊系统检查与更换指南.pdf
- 信息系统项目管理师考试案例分析:质量管理问题与测试缺陷趋势.pdf
- 省道S223线梅县区松源至雁洋(出省通道)改建工程临时用地土地复垦方案.pdf
- 2026年全球脑机接口市场全景分析报告 2026 Global High Tech Outlook.docx
- 2025全球顶级品牌授权代理商 THE TOP GLOBAL LICENSING AGENTS 2025.docx
- 药渡全球药物研发进展报告 ⸺创新药篇 2026年01月03日—2026年01月09日.docx
- 智慧社区小区物业整体智能化解决方案.docx
- B2B销售培训及绩效改进调研报告.docx
- 大数据在城轨行业的应用.pptx
- 房地产 -2025年第四季度法兰克福写字楼市场 Frankfurt Office Market Q4 2025.docx
- 宠物行业新品趋势-炼丹炉x淘天集团-202601.docx
- 2025空间智能软件技术大会:GIS+燃气:智慧燃气行业数字化转型.pptx
- 2025年AI治理报告:回归现实主义.docx
- 2025医疗科技领域AI应用:驾驭变革与机遇研究报告 Artificial Intelligence in Medtech Navigating Change and Opportunity.docx
- 2026年50大科技趋势前瞻报告 The Top 50 Technology Trends.docx
- 数字电网无人机巡检解决方案.docx
- 人工智能企业综合能力评价规范(平台化视角)(征求意见稿).docx
- 中国经济复盘与展望:“反内卷”与结构突围.docx
- 爷爷不泡茶茶饮品牌小红书平台推广方案.pptx
- 2026年美中AI市场竞争态势与DeepSeek的突围(中文).docx
原创力文档

文档评论(0)