android中的view什么意思_layout软件用来干什么

Android (1) 2024-09-29 17:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
android中的view什么意思_layout软件用来干什么,希望能够帮助你!!!。

Android应用程序的Activity及PhoneWindow、DecorView和ViewRootImpl对象都创建完毕。所有对象创建完毕后,ViewRootImpl类就可以从DecorView开始测量、布局和绘制View,这个过程分别确定View的大小、位置和绘制界面,这几个步骤也完成后,View就显示到界面上了。这个过程分为三个阶段,如图所示。

android中的view什么意思_layout软件用来干什么_https://bianchenghao6.com/blog_Android_第1张

这三个阶段是有顺序的,先通过measure过程来确定View的大小,再通过layout过程来确定View的位置,等View的大小和位置都确定之后,通过draw过程来绘制View。对于measure阶段,这个过程从ViewRootImpl类的performMeasure()方法开始,之后会进入测量框架View类的measure()方法,该方法会分发到所有的子View来调用onMeasure()方法进行测量。对于layout阶段,这个过程从ViewRootImpl类的performLayout()方法开始,之后会进入测量框架View类的layout()方法,该方法会分发到子View来调用onLayout()方法进行布局。对于draw阶段,这个过程从ViewRootImpl类的performDraw()方法开始,之后会进入测量框架View类的draw()方法,该方法会分发到所有的子View来调用onDraw()方法进行绘制View。从前面可知,DecorView是所有View的根视图,所以从它开始分析measure、layout和draw过程,该过程以ViewRootImpl的setView()方法为入口开始。这三个阶段的入口过程如图所示。

android中的view什么意思_layout软件用来干什么_https://bianchenghao6.com/blog_Android_第2张

在ViewRootImpl类的setView()方法中,变量mView是DecorView类型对象,如果它为空,就把前面传递过来的DecorView类型对象view赋值给它。接下来,如果它实现了RootViewSurfaceTaker接口,并且它的willYouTakeTheSurface()方法返回值不为空,那么就表示应用程序想管理自己的UI渲染操作,这类似于SurfaceView的操作,即它们的UI渲染完全由APP自己控制。但是这种情况很少见,一般情况下都不会这么用,于是最后mSurfaceHolder就会为空,所以就会调用enableHardwareAcceleration(attrs)方法来判断当前窗口的View是否使用硬件加速渲染。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

下一篇

已是最新文章

发表回复