Window概念

Window是什么

Window是Android中的可见窗口,也是Android中唯一的可见视图,包括Activity、Dialog、PopupWindow、Toast等都是通过Window来显示视图的。

Window是个抽奖的概念,它是以View的形式存在的,也可以是说Window其实就是一个View,只不过这个View是通过WindowManager进行管理的。

在Android中,窗口可分为三类:

1. 应用程序窗口 (Application Window)。是通常的、顶层的应用程序窗口。最常见的就是Activity的窗口。

2. 子窗口(Sub Window)。与顶层窗口相关联,必须依附于其他窗口。token必须设置为它所附着的宿主窗口的token。比如说,PopupWindow就是子窗口。

3. 系统窗口(System Window)。 用于特定的系统功能。使用时需要特殊权限。 比如说,状态栏(Status Bar), 导航栏(Navigation Bar), 壁纸(Wallpaper), 来电显示窗口(Phone),锁屏窗口(KeyGuard), Toast等等。

这三种Window的实质都是View,比如说Activity,Activity是个载体,它不负责视图的绘制,而是交给它内部的PhoneWindow类进行绘制的,而PhoneWindow最重要的是DecorView,最后用户看到的就是DecorView。

WindowManager

WindowManager(简称WM)继承了ViewManager,ViewManager只有三个方法:

public void More addView(View view, ViewGroup.LayoutParams params);
public void More updateViewLayout(View view, ViewGroup.LayoutParams params);
public void More removeView(View view);

一个View经过WindowManager的addView之后,就变成一个Window。
具体关于WindowManager的机制,以后再说。

总结:

  1. Window是个抽象的概念。
  2. Window以View的形式存在。
  3. 每一个Window都对应着一个View和一个ViewRootImpl,Window和View通过ViewRootImpl来建立联系。
  4. 通过WindowManager进行管理。

至于具体的源码分析等网上已经有太多的优秀博客了,我就不重复造轮子了。
推荐:
http://blog.csdn.net/luoshengyang/article/details/8462738

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值