View,Widget,Layout,Window,Activity之间的关系

ViewWidgetViewGroupLayout同属一类;
View是界面显示的基本单元,会draw()到Canvas上。
ViewGroup继承View,是个容器,内部有View[]数组;
有些Widget(如ImageView,TextView等)继承View;
有些Widget(如AdapterView,GridView等)继承ViewGroup;
所有Layout(如LinearLayout,FrameLayout)也都继承ViewGroup;

Window是个抽象类,PhoneWindow是其手机上的实现类;
它拥有个Context,在构造的赋值,通过它可以获取各种系统参数。
它拥有个WindowManager,负责跟系统的WINDOW_SERVICE通信;
它拥有个派生自FrameLayout的DecorView,作为该窗口上的控件树的根;
它拥有Window类型的mContainer和mActiveChild,用于管理窗口之间的关系;
PhoneWindow主要包含:
标题(TextView mTitleView和ActionBarView mActionBar);
内容区域(ViewGroup mContentParent),通常用setContentView()设置。
选择菜单(ContextMenuBuilder mContextMenu),可以显示或隐藏。

Activity,跟Application和Service等都派生自Context(上下文,环境);
它拥有个Window,在attach()时,由PolicyManager.makeNewWindow()赋值; 
它拥有个mMainThread,用于记录执行线程,在attach()时,由外部传入。
它拥有Activity类型的mParent,用于维护Activity之间的关系;
PolicyManager拥有个IPolicy,它的makeNewWindow()调用了new PhoneWindow;
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值