Window和WindowManager

  • Window是一个抽象类,Android所以的视图都是附加在Window上的,Window实际是View的直接管理者,它的具体实现是PhoneWindow,Window的具体实现位于WindowManagerService;
  • 每一个Window都对应着一个View和一个ViewRootImpl,Window是以View的形式存在的,Window和View之间通过ViewRootImpl建立联系;
  • WindowManager是外界访问Window的入口,WindowManager和WindowManagerService的交互是一个IPC过程;
  • WindowManager常用的功能有三个:
    addView(view,mLayoutParams);
    updateViewLayout(view,mLayoutParams);
    removeView(view);
    mLayoutparams的几个常用属性:
    a.flag:FLAG_NOT_FOCUSABLE,表示Window不需要获取焦点,也不需要接收各种输入事件,最终事件会传递给下层的具有焦点的Window。FLAG_NOT_TOUCH_MODAL,系统会将当前Window区域以外的单击事件传递给底层Window,当前Window区域以内的单击事件则自己处理。FLAG_SHOW_WHEN_LOCKED,可以让Window显示在锁屏界面上。
    b.type:表示Window的类型,应用Window层级范围1-99,子Window层级范围1000-1999,系统Window层级范围2000-2999,层级大的会覆盖在层级小的Window上面。系统Window常用的有TYPE_SYSTEM_OVERLAY或者TYPE_SYSTEM_ERROR,需要声明SYSTEM_ALERT_WINDOW权限。
    c.x、y:Window的显示位置坐标,可以通过改变x、y属性值实现Window的拖动。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值