1.publicintx; 如果忽略gravity属性,那么它表示窗口的绝对X位置。
什么是gravity属性呢?简单地说,就是窗口如何停靠。 当设置了 Gravity.LEFT或
Gravity.RIGHT之后,x值就表示到特定边的距离。2.publicinty;如果忽略gravity属性,那么它表示窗口的绝对Y位置。当设置了
Gravity.TOP或 Gravity.BOTTOM之后,y值就表示到特定边的距离。
3.
public floathorizontalWeight;public
floatverticalWeight; 在纵/横向上,为关联的view预留了多少扩展空间(像素)。如果是0,那么此view不能被拉伸。 其他情况下,扩展空间(像素)将被widget所均分。
4.publicinttype;窗口类型。有3种主要类型:Applicationwindows: 取值在FIRST_APPLICATION_WINDOW和LAST_APPLICATION_WINDOW之间。是通常的、顶层的应用程序窗口。必须将
token 设置成 activity 的 token 。Sub_windows: 取值在FIRST_SUB_WINDOW和LAST_SUB_WINDOW之间。与顶层窗口相关联,token
必须设置为它所附着的宿主窗口的 token。Systemwindows: 取值在FIRST_SYSTEM_WINDOW和LAST_SYSTEM_WINDOW之间。用于特定的系统功能。它不能用于应用程序,使用时需要特殊权限。
下面定义了type的取值: 应用程序窗口。
public static final intFIRST_APPLICATION_WINDOW=
1;
所有程序窗口的“基地”窗口,其他应用程序窗口都显示在它上面。
public static final intTYPE_BASE_APPLICATION=1;
普通应哟功能程序窗口。token必须设置为Activity的token,以指出该窗口属谁。
public static final intTYPE_APPLICATION= 2;
用于应用程序启动时所显示的窗口。应用本身不要使用这种类型。
它用于让系统显示些信息,直到应用程序可以开启自己的窗口。
public static final intTYPE_APPLICATION_STARTING=
3;
应用程序窗口结束。
public static final intLAST_APPLICATION_WINDOW= 99;
子窗口。子窗口的Z序和坐标空间都依赖于他们的宿主窗口。
public static final intFIRST_SUB_WINDOW= 1000;
面板窗口,显示于宿主窗口上层。
public static final intTYPE_APPLICATION_PANEL=FIRST_SUB_WINDOW;
媒体窗口,例如视频。显示于宿主窗口下层。
public static final intTYPE_APPLICATION_MEDIA=FIRST_SUB_WINDOW+1;
应用程序窗口的子面板。显示于所有面板窗口的上层。(GUI的一般规律,越“子”越靠上)
public static final intTYPE_APPLICATION_SUB_PANEL=FIRST_SUB_WINDOW+2;
对话框。类似于面板窗口,绘制类似于顶层窗口,而不是宿主的子窗口。
public static final intTYPE_APPLICATION_ATTACHED_DIALOG=FIRST_SUB_WINDOW+3;
媒体信息。显示在媒体层和程序窗口之间,需要实现透明(半透明)效果。(例如显示字幕)
public static final intTYPE_APPLICATION_MEDIA_OVERLAY=FIRST_SUB_WINDOW+4;
子窗口结束。( End of types of sub-windows )
public static final intLAST_SUB_WINDOW= 1999;
系统窗口。非应用程序创建。
public static final intFIRST_SYSTEM_WINDOW= 2000;
状态栏。只能有一个状态栏;它位于屏幕顶端,其他窗口都位于它下方。
public static final intTYPE_STATUS_BAR=FIRST_SYSTEM_WINDOW;
搜索栏。只能有一个搜索栏;它位于屏幕上方。
public static final intTYPE_SEARCH_BAR=FIRST_SYSTEM_WINDOW+1;
电话窗口。它用于电话交互(特别是呼入)。它置于所有应用程序之上,状态栏之下。
public static final intTYPE_PHONE=FIRST_SYSTEM_WINDOW+2;
系统提示。它总是出现在应用程序窗口之上。
public static final intTYPE_SYSTEM_ALERT=FIRST_SYSTEM_WINDOW+3;
锁屏窗口。
public static final intTYPE_KEYGUARD=FIRST_SYSTEM_WINDOW+4;
信息窗口。用于显示toast。
public static final intTYPE_TOAST=FIRST_SYSTEM_WINDOW+5;
系统顶层窗口。显示在其他一切内容之上。此窗口不能获得输入焦点,否则影响锁屏。
public static final intTYPE_SYSTEM_OVERLAY=FIRST_SYSTEM_WINDOW+6;
电话优先,当锁屏时显示。此窗口不能获得输入焦点,否则影响锁屏。
public static final intTYPE_PRIORITY_PHONE=FIRST_SYSTEM_WINDOW+7;
系统对话框。(例如音量调节框)。
public static final intTYPE_SYSTEM_DIALOG=FIRST_SYSTEM_WINDOW+8;
锁屏时显示的对话框。
public static final intTYPE_KEYGUARD_DIALOG=FIRST_SYSTEM_WINDOW+9;
系统内部错误提示,显示于所有内容之上。
public static final intTYPE_SYSTEM_ERROR=FIRST_SYSTEM_WINDOW+10;
内部输入法窗口,显示于普通UI之上。应用程序可重新布局以免被此窗口覆盖。
public static final intTYPE_INPUT_METHOD=FIRST_SYSTEM_WINDOW+11;
内部输入法对话框,显示于当前输入法窗口之上。
public static final intTYPE_INPUT_METHOD_DIALOG=FIRST_SYSTEM_WINDOW+12;
墙纸窗口。public static final intTYPE_WALLPAPER=FIRST_SYSTEM_WINDOW+13;
状态栏的滑动面板。public static final intTYPE_STATUS_BAR_PANEL=FIRST_SYSTEM_WINDOW+14;
系统窗口结束。 public static final intLAST_SYSTEM_WINDOW=
2999;
分享到:
相关推荐
WindowManager属性详解:WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;继承于 ViewGroup.LayoutParams 。 它的内容十分丰富。其实WindowManager.java的主要内容就是由这个类定义构成。
在Android系统中,WindowManager是负责管理窗口的重要组件,它允许开发者将视图添加到屏幕上的窗口层次结构中。...在实际开发中,合理运用Window和WindowManager,可以实现各种复杂的界面效果,提升用户体验。
在创建自定义对话框时,通常会使用LayoutInflater来加载XML布局,然后通过WindowManager的LayoutParams对象来设置对话框的位置和属性,最后将其添加到窗口管理器中。 要创建一个WindowManager对话框,你需要遵循...
WindowManager是Android系统中的一个重要组件,它允许开发者在应用程序中添加、移除或者更新视图到系统的窗口层次结构。在Android应用开发中,WindowManager常用于实现浮动小部件(如通知、对话框)或者自定义的系统...
WindowManager是一款专为多桌面窗口管理设计的工具,尤其适合那些在工作中需要频繁切换和隐藏窗口的用户。它提供了一种高效且便捷的方式来管理和保护你的桌面环境,确保你在需要时可以快速地隐藏或显示窗口,避免因...
WindowManager是Android系统中管理窗口的一个关键组件,负责管理所有的窗口,包括应用窗口、子窗口和系统窗口。WindowManager继承了ViewManager接口,提供了三个方法来操作View:addView、updateViewLayout和...
android13 WindowManager-Shell.jar
本文将详细介绍如何在Android应用中采用`WindowManager`来屏蔽Home键。 首先,我们需要创建一个悬浮窗口(Floating Window),这是`WindowManager`的主要用途之一。悬浮窗口可以覆盖在其他应用之上,我们可以通过...
然后,在代码中通过`Context.getSystemService()`获取`WindowManager`实例,并使用`LayoutParams`来定义窗口的属性,如位置、大小、类型等。 对于悬浮窗,一般会使用`WindowManager.LayoutParams.TYPE_APPLICATION_...
调用WindowManager,并设置WindowManager.LayoutParams的相关属性,通过WindowManager的addView方法创建View,这样产生出来的View根据WindowManager.LayoutParams属性不同,效果也就不同了。比如创建系统顶级窗口,...
首先,`WindowManager`是Android系统提供的一个接口,它允许我们添加、移除或更新视图到系统的窗口管理器中。`addView()`方法是`WindowManager`的核心,用于将视图添加到窗口层次结构中。在实现悬浮窗口播放视频时,...
在Android开发中,WindowManager是一个非常重要的服务,它允许开发者将视图添加到系统的顶级窗口层次结构中,实现各种自定义的界面效果。本篇主要探讨如何利用WindowManager的`addView()`方法来创建一个可伸缩的弹出...
在Android开发过程中,`WindowManager.LayoutParams`是一个非常重要的类,它用于配置窗口的各种属性,如位置、大小、类型等。通过本文档,我们将深入探讨`WindowManager.LayoutParams`的所有参数及其详细信息。 ###...
在Android开发中,实现类似QQ视频那样的悬浮窗功能,需要用到`WindowManager`接口。`WindowManager`是Android系统服务之一,它允许应用管理窗口并控制它们在屏幕上的位置和显示方式。本篇将深入探讨如何利用`...
Window是一个抽象类,具体实现是 PhoneWindow 。不管是 Activity 、 Dialog 、 Toast 它们的视图都是附加在Window上的,因此Window实际上是View的直接管理者。
- 使用`WindowManager`服务,通常在`Service`或`Activity`中初始化`WindowManager`实例:`WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);` - 创建一个`LayoutParam`对象,定义...
4. 获取`WindowManager`实例,调用`addView(FloatView, LayoutParams)`将`FloatView`添加到窗口管理器中。 5. 当需要更新按钮位置时,调用`updateViewLayout(FloatView, LayoutParams)`。 6. 要移除悬浮按钮,使用`...
首先,我们要了解`WindowManager`是Android系统中的一个接口,它用于管理系统的窗口。通过`WindowManager`,我们可以添加、删除或更新窗口,实现自定义视图的显示。在实际应用中,悬浮窗通常会用到`TYPE_PHONE`或者`...
接下来,在你的Activity中获取`WindowManager`实例,然后创建`LayoutParams`对象,设置悬浮窗的类型、位置、大小等属性。`LayoutParams`的类型应设置为`TYPE_SYSTEM_ALERT`,这样悬浮窗就能在所有应用之上显示,但...
在Android开发中,实现一个可自由移动的悬浮窗口通常涉及到`WindowManager`服务的使用。`WindowManager`是Android系统提供的一个接口,允许应用程序在窗口管理器中添加、删除或配置视图。在这个主题中,我们将深入...