一、View转换为Bitmap 在Android中所有的控件都是View的直接子类或者间接子类,通过它们可以组成丰富的UI界面。在窗口显示的时候Android会把这些控件都加载到内存中,形成一个以ViewRoot为根节点的控件树,然后由根节点开始逐级把控件绘制到屏幕上。 可以通过调用控件的setDr ...
分类:
移动开发 时间:
2016-06-09 06:15:58
阅读次数:
310
具体错误: android.view.WindowManager$BadTokenException:Unable to add window - token android.view.ViewRoot$W@47ff8b70 is not valid;is your actvity runing? ...
ViewRoot和DecorViewViewRoot对应于ViewRootImpl类,是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。在ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象和DecorVie...
分类:
移动开发 时间:
2016-05-26 17:16:45
阅读次数:
424
在搜集Android view绘制流程的相关知识时,发现这里面的流程还是有些复杂的,准备了好几天,才敢提起笔来。下面就直入主题吧!
view绘制流程是从ViewRoot的performTraversals()方法中开始的,在该方法中会执行view绘制的三部曲,即:measure(测量视图的大小),layout(确定视图的位置)draw(绘制视图的内容)。下面这张图明确的展示了该过程:
...
分类:
移动开发 时间:
2016-05-26 06:22:39
阅读次数:
280
View 的工作原理
ViewRoot和DecorView
1.ViewRoot对应ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均通过ViewRoot来完成。
2.ActivityThread中,Activity创建完成后,会将DecorView添加到Window中,同时创建ViewRootImpl对象,并建立两者的关联。
3....
分类:
其他好文 时间:
2016-05-13 04:19:08
阅读次数:
128
对应用层开发来说, 不太需要从触摸事件的源头开始了解. 但如果仅仅了解View和ViewGroup里对触摸事件的分发处理, 又显得了解得有些狭隘了. 所以, 这里对ViewRoot中对触摸事件的分发处理进行一个分析, 希望能帮到你....
分类:
其他好文 时间:
2016-05-12 18:39:12
阅读次数:
245
整个View树的绘图流程
是在ViewRoot.Java类的performTraversals()函数展开的
performTraversals()执行过程
判断是否需要重新计算视图大小(measure)是否重新需要安置视图的位置(layout)是否需要重绘(draw)
mesarue()
树形递归过程
作用
为整个view树计算实际大小 -> 设置实际的宽高【mMeasur...
分类:
移动开发 时间:
2016-05-12 13:41:21
阅读次数:
181
在android开发过程中,耗时操作我们会放在子线程中去执行,而更新UI是要主线程(也叫做:UI线程)来更新的,自然会遇到如何更新主线程UI的问题。如果在主线程之外的线程中直接更新页面显示常会报错。抛出异常:android.view.ViewRoot.CalledFromWrongThreadExc ...
分类:
移动开发 时间:
2016-05-10 12:41:04
阅读次数:
197
Android开发艺术探索——第四章View的工作原理4.1(一)初识ViewToot和DecorView基本概念
ViewRoot对应于ViewRootImpl类,是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。在ActivityThread中,当Activity对象被创建完成后,会将DecorView添加到View中。同时,会...
分类:
移动开发 时间:
2016-04-29 17:09:12
阅读次数:
366
相关概念:
ViewRoot:ViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程都是在viewroot中完成。View的绘制流程:
View的绘制流程是从ViewRoot的performTraversals方法开始的,它经过measure,layout,draw三个过程才最终将一个View绘制出来,performTr...
分类:
其他好文 时间:
2016-04-29 15:41:20
阅读次数:
239