Android控件架构与自定义控件

1.Android控件架构

    Android中的控件分为两类,ViewGroup和View。

                              ViewParent
                                       |
控件树
    ViewGroup可以作为父控件管理包含的View控件。上层控件负责下层子空间的测量与绘制,并传递交互事件。使用Activity的findViewById()方法就是在控件树中使用深度优先遍历来查找对应的元素。每个控件树的顶部都有一个ViewParent对象,为控件树的控制核心,所有的交互管理事件都有它来统一调度和分配,从而对整棵树进行整体控制。
    通常情况下,在Activity中要使用setContentView()方法设置布局,在调用该方法后,布局内容才会真正的显示出来(其实真正显示出来是在onResume()后完成的),Activity界面架构图如下:
这里写图片描述
     每个Activity都包含一个Window对象,通常由PhoneWindow来实现。PhoneWindow将一个DecorView作为整个窗口的根View,DecorView作为窗口界面的顶层试图,封装了一些窗口操作的通用方法。显示上,DecorView中将屏幕分成了两个部分,TitleView和ContentView。所以其实Activity中其实setContentView设置的就是ContentView的布局,ContentView是一个Id为content的FrameLayout,activity_main.xml就是设置的这个FrameLayout里面。
     如果想不显示TitleView 可以使用requestWindowFeature方法,但是这一步一定要在setContentView之前。
     代码中onCreate()中调用了setContentView()方法后,ActivityManagerService会回调onResume()方法,此时系统才会把整个DecorView添加到PhoneWindow中,并让其显示出来完成绘制。

2.View的测量

     Android在onMeasure中完成对控件的测量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值