首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自定义View(七)-View的工作原理- Activity布局加载

---- Activity#setContentView 关于View的工作原理,大家可能会问:为什么不直接看View呢?...因为我觉得Activty是呈现应用界面的载体,所有的View都在Acitivity中,并且在理解Activity的启动XML的加载也是一种了解View工作原理的一个很好的入口。...//这里mContentParent就是我们布局加载的父Viewactivity_main就是加载到他里面 if (mContentParent == null) {...---- 总结 通过上面的流程,我们现在就了解了Activity布局加载,现在我们来梳理下流程: ? Android布局加载.png 层级结构关系: ?...---- DecorView添加到窗口过程 1.ActivityThread#performResumeActivity 上面我们已经了解了,Activity布局加载过程,当我们加载布局完成后我们是如何将我们加载的布局添加到我们的界面窗口的呢

87330

Android基础_2 Activity线性布局和表格布局

activity布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写 相应的xml的代码,java代码不需要更改,因为我们这里只是练习...其中本实验用到的各控件的属性解释如下:     android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。     ...-- 线性布局中 android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。...:   表格布局有点类似表单的意思,可以在activity中建立多行,每一行又可以设置为多列,所以看起来横竖条理比较清晰,因此叫做表格布局。   ...这次实验将上面的2个实验混合起来显示的,即总的布局为垂直方向上的线性布局,上面那个布局内部又为垂直方向的布局,下面那个布局为也是一个线性布局,不过里面嵌入了一个表格布局,所以总共有4个布局

69420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    理清 ActivityView 及 Window 之间关系

    View、Window以及Activity主要是用于显示并与用户交互的。这让我们在初学的时候很容易弄混,而且无法理解他们区别以及联系。本文是笔者查阅相关资料后,结合自己的理解写出来。...3、Activity 3.1 Activity基本理解 对于开发人员来说,一个Activity就“相当于”一个界面(通过setContentView指定具体的View)。...我们可以直接在Activity里处理事件,如onKeyEvent,onTouchEvent等。 并可以通过Activity维护应用程序的生命周期。 3.2 Activity有存在的必要吗?...我们把Activity所做的事情,全部封装到Window不就好了? 其实,本质上讲,我们要显示一个窗口出来,的确可以不需要Activity。悬浮窗口中不就是没有使用Activity来显示一个悬浮窗吗?...既然如此,Window(以及View)能处理点击事件以及封装各种逻辑,那为啥还需要Activity呢?

    1.3K90

    Android基础_3 Activity相对布局

    相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的。...本次实验就是显示如下的activity: ?          其中只有2个button,1个textview,1个edittext。         ...在相对布局中,一般用到的控件属性解释如下:          在相对布局中有如下属性,解释如下:          android:layout_above  为将该控件的底部放在指定id控件的上方         ...将该控件右边与指定id控件右边对齐          android:layout_alignTop                    将该控件顶端与指定id控件顶端对齐          实现上面activity...的相对布局比较灵活,一些常见的属性也比较多,用得多自然就会了。

    52630

    Activity加载view6.0源码分析---setContentView

    在研究activity组件的view加载之前,先整体认 识下activity布局,有助于更好的去理解setContentView方法 Chapter One:认识Activity布局 对于研究布局这种东西...从这张activity布局图可以看到:一个activity对应一个应用窗口mWindow,应用窗口mWindow包括activity的顶级view是 mDecorView,mDecorView包括状态栏...布局的最外层view,包括标题栏和activity的内容布局 mContentParent:activity的内容布局,继承自ViewGroup,用来加载存放activityview树,如果没有标题栏...对activity布局大致有个了解之后,就开始去分析activity启动后加载view的流程 Chapter Two:activity加载view布局----始于setContentView         ...对于activity布局的加载大致分为两部分,一部分是加载view,另一部分是将view绑定到应用窗口Window。

    83280

    Android自定义View——布局Layout

    之前写了一篇文章介绍自定义View,主要是介绍了自定义View绘制相关的操作。 这里主要是介绍自定义View另一个重要的关键——布局Layout。...绘制相关介绍可以参考:https://www.jianshu.com/p/8b96285cda49 自定义布局 自定义布局主要分为两个部分, 测量(measure()) 和 布局 (layout())...测量过程: 从根view递归调用每一级子view的measure()方法 布局流程:从根view递归调用每一级子view的layout()方法,把测量时得到的子View的尺寸和位置传递给子View。...具体的布局流程如下: 1,在xml中编写View的相关属性 (layout_xxx,设置View的宽高等) 2,父View在自己的onMeasure()方法中,根据xml中设置的要求和自己可用的空间...的布局,先看效果 标签效果 标签我使用了自定义的View如下,这个属于自定义view的绘制部分,比较简单不是本篇文章介绍的重点,这里就不多说了。

    1.4K10

    Android高频面试专题 - 提升篇(一)Window、ViewActivity

    params); //更新View public void removeView(View view); //删除View } 5.Activity中setContentView()发生了什么...或者layout布局文件填充到这个mContentParent中,后面会讲到具体细节。...DecoreView本质就是一个FrameLayout,是Activity中的顶级View,如果我们不设置任何主题style,默认加载的DecorView会addView以下布局文件 ?...即使Activity布局已经成功添加到DecorView中,DecorView此时还没有添加到Window中 ActivityThread的handleResumeActivity方法中,首先会调用Activity...ViewRootImpl中调用performTraversals方法,然后便开始测量布局绘画了,界面才得以显示出来,这就是View的绘制流程起点。 10、Token是什么?

    2.4K20

    从源码的角度浅谈Activity、Window、View之间的关系

    序言 很多人都会用Activity、Window、View,但是你知道他们是怎样加载出来并呈现在你眼前的吗?你知道他们之间有着鲜为人知的关系吗? ?...在这个例子当中,画板就好比Activity,纸就好比Window,而笔就是View,我们所看到的就是这幅画,是通过笔一点一点画出来的,在哪里画呢?当然是纸上了,而最终承载这幅画的东西就是画板了。...Activity的创建过程 我们都知道,Activity启动的时候是从ActivityThread中的Handler中发起的,然后经过handlerLauncher等一系列方法,如果还不知道的话可以去参考我之前写的...方法中创建了一个Window,这个Window就是我们经常听到的PhoneWindow View的创建过程 我们大胆的猜测一下,View应该是被添加到Window中的,那么我们来看一下,到底是怎样添加的呢...a.mFinished && willBeVisible) { 8 r.window = r.activity.getWindow(); 9 View decor =

    61020

    Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件

    而对于ViewGroup来说,则是一个用于存放其他View和ViewGroup对象的布局容器!...viewgroup.png Android为我们提供了View和ViewGroup的两个子类的集合,提供常用的一些输入控件(比如按钮,图片和文本域等)和各种各样的布局模式(比如线程布局,相对布局,绝对布局...View的容器,而它的子视图View可能是输入一些控件或者在某块区域的小部件UI。...绝对布局: 指子控件通过绝对定位x,y位置来决定其位置摆放。 表格布局: 指以行列的形式放置子控件,每一行是一个TableRow对象或者View对象。...listview.png 结语 本文主要讲解 Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件 下面我将继续对

    1.8K20

    从源码角度分析Activity与Window及View之间的关系

    我们都知道布局文件的加载是在Activity的onCreate()方法中,使用setContentView进行加载 这个方法是个重载方法 ?...直接创建了一个PhoneWindow对象, 那么意味着 每创建一个Activity都会创建一个PhoneWindow对象 那么PhoneWindow与Window到底是什么关系呢? ?...PhoneWindow是Window的子类 那么到此为止, 我们知道了其实Activity中的setContentView实际上是PhoneWindow在处理 我们找到PhoneWindow.java能发现其对应的方法...咱们平常开发时在xml中写的布局并不是根结点, 而是contentParent的子view 总结 它们之间的关系可以大致理解为: Activity: 相当于一栋房子 Window: 相当于房子里的一扇窗户...View: 相当于窗户上的一朵窗花 它们三个的创建顺序为: Activity--->Window--->View 具体时序图如下: ?

    40550

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券