android画图流程分析
2012-03-14 20:18
155 查看
接触了很多的view ,但对它是如何被画出来的一直都不是很清新
今天好好找了下资料,总结一下:
android中的view是放在window上的,但window只是起到一些公共特性的抽象范畴
window下面的根view才是接受主要功能的部分,包括如何布局,画图,事件的分发等
而各个根view又被放到windowmanager里面进行管理,
windowmanager主要管理各个窗口的显示,隐藏等而各个窗口的布局,画图,事件的分发,
windowmanager只是发给各个根view,让他们自己分发管理自己的子控件等
而画图就是由各个view以及他们的父layout来控制的,
但画图可不是简单的分发,管理,他需要硬件来支持显示到屏幕上,它需要内存来不断的移动这些数据
而这些操作又是怎么个流程的呢!
我们在自定义view的时候经常用到ondraw()这个回调方法,在这里只需在canvas参数上用画笔,来画就行了
我们完全不需要知道他是怎么被放到屏幕上得,以及何时被放到屏幕上得,
先看看如何被放到屏幕上得,
其实画图的时候是现需要分配内存来存储这些画图数据的,
android是通过共享内存的方式来管理这些数据的存储和访问的,用surfacefling来封装管理这个区域,
而每个surface都对应自己的graphicbuffer来缓存数据然后最终通过surfacefling来显示到屏幕上
surface就是一块区域的意思,我们要向画图时必须锁定一块surface(存储区域) 然后获得canvas,接着操作!
我们也可以直接操作canvas来作图,因为canvas其实是封装的ska图形库来作图的,它里面也是有存储区域的,不过要想显示出来
还是得需要surfacefling来处理
比如如果不是在ondraw()里画图 而是在其他地方 new一个canvas
然后 作图 最后通过 imageview。setimagebitmap或者 view。setbackgroundrable来显示
应该就是这种情况了!
算是有了个系统的认识了!错了再改就是!
画个图吧:
先空着吧!以后有时间了再加上!csdn是允许以后编辑的!哬
今天好好找了下资料,总结一下:
android中的view是放在window上的,但window只是起到一些公共特性的抽象范畴
window下面的根view才是接受主要功能的部分,包括如何布局,画图,事件的分发等
而各个根view又被放到windowmanager里面进行管理,
windowmanager主要管理各个窗口的显示,隐藏等而各个窗口的布局,画图,事件的分发,
windowmanager只是发给各个根view,让他们自己分发管理自己的子控件等
而画图就是由各个view以及他们的父layout来控制的,
但画图可不是简单的分发,管理,他需要硬件来支持显示到屏幕上,它需要内存来不断的移动这些数据
而这些操作又是怎么个流程的呢!
我们在自定义view的时候经常用到ondraw()这个回调方法,在这里只需在canvas参数上用画笔,来画就行了
我们完全不需要知道他是怎么被放到屏幕上得,以及何时被放到屏幕上得,
先看看如何被放到屏幕上得,
其实画图的时候是现需要分配内存来存储这些画图数据的,
android是通过共享内存的方式来管理这些数据的存储和访问的,用surfacefling来封装管理这个区域,
而每个surface都对应自己的graphicbuffer来缓存数据然后最终通过surfacefling来显示到屏幕上
surface就是一块区域的意思,我们要向画图时必须锁定一块surface(存储区域) 然后获得canvas,接着操作!
我们也可以直接操作canvas来作图,因为canvas其实是封装的ska图形库来作图的,它里面也是有存储区域的,不过要想显示出来
还是得需要surfacefling来处理
比如如果不是在ondraw()里画图 而是在其他地方 new一个canvas
然后 作图 最后通过 imageview。setimagebitmap或者 view。setbackgroundrable来显示
应该就是这种情况了!
算是有了个系统的认识了!错了再改就是!
画个图吧:
先空着吧!以后有时间了再加上!csdn是允许以后编辑的!哬
相关文章推荐
- android wifi开发流程和关键点分析
- Android系统中固件崩溃后使用uevent机制重新加载固件 流程分析
- Android Service的绑定流程源码分析(8.0)
- Android PackageManagerService流程详细分析(二)之installer
- Android系统的启动流程简要分析
- 源码分析篇 - Android绘制流程(三)requestLayout()与invalidate()流程及Choroegrapher类分析
- Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
- Android OTA升级原理和流程分析(二)---update.zip差分包问题的解决
- Android OTA升级原理和流程分析(四)---Android系统Recovery模式的工作原理
- Android 事件捕捉和处理流程分析
- Android OTA升级原理和流程分析(四)---Android系统Recovery模式的工作原理
- Android应用层View绘制流程与源码分析
- android中wifi原理及流程分析
- android TouchEvent处理流程分析
- Android 6.0 Reboot 流程源代码分析
- Android Input流程分析(四):InputDispatcher
- Android中View绘制流程以及invalidate()等相关方法分析
- Android视图状态及重绘流程分析
- Android SurfaceFlinger VSync流程分析
- MT6737 Android N 平台 Audio系统学习----录音到播放录音流程分析