/***浮动窗口的创建类**/classPopupWindowCreator{/*** 创建 view*/fun<VDB : ViewDataBinding>createPopupViewVDB(context:Context,layoutId:Int):VDB{returnDataBindingUtil.inflate(LayoutInflater.from(context),layoutId,null,false)}/*** 创建一个 popup window*/fun<VDB : ViewDataBinding>createPopupWindow(co...
--将Window的WindowManager赋值给Activity--> mWindowManager = mWindow.getWindowManager(); mCurrentConfig = config; }mWindow.setWindowManager并不是直接为Window设置WindowManagerImpl,而是利用当前的WindowManagerImpl重新为Window创建了一个WindowManagerImpl,并将自己设置此WindowManagerImpl的parentWindow:publicv...
public static final int TYPE_APPLICATION_ATTACHED_DIALOG = FIRST_SUB_WINDOW + 3; public static final int TYPE_APPLICATION_MEDIA_OVERLAY = FIRST_SUB_WINDOW + 4; public static final int TYPE_APPLICATION_ABOVE_SUB_PANEL = FIRST_SUB_WINDOW + 5; public static final int LAST_SUB_WINDOW = 1999;...
--关键点1当前WindowToken对应的窗口列表-->final WindowList windows=newWindowList();...}finalclassWindowStateimplementsWindowManagerPolicy.WindowState{staticfinal StringTAG="WindowState";final WindowManagerService mService;final WindowManagerPolicy mPolicy;final Context mContext;final Session mSession;<!--当前...
问题2:Window什么时候和View进行关联? 问题3:Window有哪些属性?类型?层级关系?z-order?Window标志?软键盘模式都了解么? 问题4:View是如何一步一步添加到屏幕上的?更新?删除呢? 那么就开始我们的源码(mo)遨(yu)游吧。 1.Window和Activity以及WindowManager什么时候建立的关系?
实现了窗口的各种策略,定义了窗口相关策略,比如:告诉WMS某一个类型Window的Z-Order的值是多少,帮助WMS矫正不合理的窗口属性,为WMS监听屏幕旋转的状态,预处理一些系统按键事件; (4)Choreographer 用户控制窗口动画、屏幕选择等操作,它拥有从显示子系统获取Vsync同步事件的能力,从而可以在合适的时机通知渲染动作,避免在渲...
window一共可分为三类: 应用程序窗口:应用程序窗口一般位于最底层,Z-Order在1-99 子窗口:子窗口一般是显示在应用窗口之上,Z-Order在1000-1999 系统级窗口:系统级窗口一般位于最顶层,不会被其他的window遮住,如Toast,Z-Order在2000-2999。如果要弹出自定义系统级窗口需要动态申请权限。
窗口的Z次序管理:窗口的分配序号、次序调整等 WMS中窗口次序分配如何影响SurfaceFlinger服务 在WMS窗口添加一文中分析过,窗口的添加是通过WindowManagerGlobal.addView()来完成 函数原型如下 publicvoidaddView(Viewview,ViewGroup.LayoutParamsparams,Displaydisplay,WindowparentWindow) ...
* windows are kept next to their attached window in Z-order, and their * coordinate space is relative to their attached window. */ public static final int FIRST_SUB_WINDOW = 1000; public static final int TYPE_LICATION_PANEL = FIRST_SUB_WINDOW; ...
窗口的显示在手机上,是以屏幕左上角为原点,向右为X轴,向下为Y轴,垂直与屏幕表面并指向屏幕外为Z轴。多个窗口依照顺序排列在Z轴上显示,称为Z order。 1:WindowState的次序 WindowState(WindowManagerService service,Session s,IWindow c,WindowToken token,WindowState parentWindow,intappOp,intseq,WindowManager.Layout...