View相关面试问题-View绘制面试问题详解
2024-10-06 14:38:40
View树的绘制流程:
measure() --> layout() --> onDraw(),具体使用这个可以参考之前实现的自定义的博客:【http://www.cnblogs.com/webor2006/p/7525979.html】
measure():
其整个绘制过程如图下:
其它涉及到以下几个重要的参数:
- ViewGroup.LayoutParams
- MeasureSpec:其中有三个模式,具体可以参考博客【http://www.cnblogs.com/webor2006/p/7525979.html】:
其涉及到以下几个重要的方法:
①、measure:
而接着它会调用下面的方法,如下:
②、onMeasure:
③、setMeasuredDimension():
layout():
这个跟measure流程差不多,也是自上而下进行遍历,如下:
draw():
有了前两个过程,接下来就可以进行绘制啦,这里需要强调两个比较容易混淆的方法:
- invalidate();它会引起重绘,也就是draw()方法。
- requestLayout();它只会引起重新测量,不会导致draw()方法重新触发。
最新文章
- Sublime3 快捷键
- ASP.NET MVC3升级到ASP.NET MVC4 的方法
- UIcollectionView的使用(首页的搭建4)
- 浅谈PHP代码设计结构
- HTTP之I/O模型图MPM详细解析
- WebIM(4)----Comet的特殊之处
- TypeScript设计模式之解释器
- Zookeer-- 上搭建 hbase
- [微信小程序] 通过快速启动demo分析小程序入门关键点
- c++ protobuf序列化
- Linux下编译安装Lnmp
- 1.深入分析_NIO性能分析
- bzoj2656 数列
- 编程之美 set 13 光影切割问题
- 获得Python脚本所在目录
- hash一致性算法
- string.Format(";rspauth={0}";,
- 推荐软件7 taskbar numberer,结果get了WIN相关的快捷键
- 【数论】bzoj1968 [Ahoi2005]COMMON 约数研究
- 主流数据文件类型(.dat/.txt/.json/.csv)导入到python