`
wangxiaohigh
  • 浏览: 1459317 次
文章分类
社区版块
存档分类
最新评论

WindowManager 中ayoutParams的各种属性

 
阅读更多
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_WINDOWLAST_APPLICATION_WINDOW之间。是通常的、顶层的应用程序窗口。必须将 token 设置成 activity 的 token 。
Sub_windows:
取值在FIRST_SUB_WINDOWLAST_SUB_WINDOW之间。与顶层窗口相关联,token 必须设置为它所附着的宿主窗口的 token。
Systemwindows:
取值在FIRST_SYSTEM_WINDOWLAST_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属性详解:WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;继承于 ViewGroup.LayoutParams 。 它的内容十分丰富。其实WindowManager.java的主要内容就是由这个类定义构成。

    windowmanager

    在Android系统中,WindowManager是负责管理窗口的重要组件,它允许开发者将视图添加到屏幕上的窗口层次结构中。...在实际开发中,合理运用Window和WindowManager,可以实现各种复杂的界面效果,提升用户体验。

    windowmanager对话框

    在创建自定义对话框时,通常会使用LayoutInflater来加载XML布局,然后通过WindowManager的LayoutParams对象来设置对话框的位置和属性,最后将其添加到窗口管理器中。 要创建一个WindowManager对话框,你需要遵循...

    WindowManager弹窗

    WindowManager是Android系统中的一个重要组件,它允许开发者在应用程序中添加、移除或者更新视图到系统的窗口层次结构。在Android应用开发中,WindowManager常用于实现浮动小部件(如通知、对话框)或者自定义的系统...

    WindowManager

    WindowManager是一款专为多桌面窗口管理设计的工具,尤其适合那些在工作中需要频繁切换和隐藏窗口的用户。它提供了一种高效且便捷的方式来管理和保护你的桌面环境,确保你在需要时可以快速地隐藏或显示窗口,避免因...

    Android利用WindowManager实现悬浮窗

    WindowManager是Android系统中管理窗口的一个关键组件,负责管理所有的窗口,包括应用窗口、子窗口和系统窗口。WindowManager继承了ViewManager接口,提供了三个方法来操作View:addView、updateViewLayout和...

    android13 WindowManager-Shell.jar

    android13 WindowManager-Shell.jar

    android 采用windowmanager屏蔽home键

    本文将详细介绍如何在Android应用中采用`WindowManager`来屏蔽Home键。 首先,我们需要创建一个悬浮窗口(Floating Window),这是`WindowManager`的主要用途之一。悬浮窗口可以覆盖在其他应用之上,我们可以通过...

    android surfaceview 悬浮窗圆角 windowmanager

    然后,在代码中通过`Context.getSystemService()`获取`WindowManager`实例,并使用`LayoutParams`来定义窗口的属性,如位置、大小、类型等。 对于悬浮窗,一般会使用`WindowManager.LayoutParams.TYPE_APPLICATION_...

    windowmanager悬浮窗口

    调用WindowManager,并设置WindowManager.LayoutParams的相关属性,通过WindowManager的addView方法创建View,这样产生出来的View根据WindowManager.LayoutParams属性不同,效果也就不同了。比如创建系统顶级窗口,...

    WindowManager.addView()实现悬浮窗口播放视频

    首先,`WindowManager`是Android系统提供的一个接口,它允许我们添加、移除或更新视图到系统的窗口管理器中。`addView()`方法是`WindowManager`的核心,用于将视图添加到窗口层次结构中。在实现悬浮窗口播放视频时,...

    android利用windowmanager的伸缩式窗口

    在Android开发中,WindowManager是一个非常重要的服务,它允许开发者将视图添加到系统的顶级窗口层次结构中,实现各种自定义的界面效果。本篇主要探讨如何利用WindowManager的`addView()`方法来创建一个可伸缩的弹出...

    WindowManager.LayoutParams

    在Android开发过程中,`WindowManager.LayoutParams`是一个非常重要的类,它用于配置窗口的各种属性,如位置、大小、类型等。通过本文档,我们将深入探讨`WindowManager.LayoutParams`的所有参数及其详细信息。 ###...

    Android 利用WindowManager实现悬浮窗 demo

    在Android开发中,实现类似QQ视频那样的悬浮窗功能,需要用到`WindowManager`接口。`WindowManager`是Android系统服务之一,它允许应用管理窗口并控制它们在屏幕上的位置和显示方式。本篇将深入探讨如何利用`...

    理解Window和WindowManager

    Window是一个抽象类,具体实现是 PhoneWindow 。不管是 Activity 、 Dialog 、 Toast 它们的视图都是附加在Window上的,因此Window实际上是View的直接管理者。

    Android悬浮框权限判断WindowManager

    - 使用`WindowManager`服务,通常在`Service`或`Activity`中初始化`WindowManager`实例:`WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);` - 创建一个`LayoutParam`对象,定义...

    可移动的悬浮按钮(WindowManager)

    4. 获取`WindowManager`实例,调用`addView(FloatView, LayoutParams)`将`FloatView`添加到窗口管理器中。 5. 当需要更新按钮位置时,调用`updateViewLayout(FloatView, LayoutParams)`。 6. 要移除悬浮按钮,使用`...

    仿360悬浮窗,WindowManager的使用

    首先,我们要了解`WindowManager`是Android系统中的一个接口,它用于管理系统的窗口。通过`WindowManager`,我们可以添加、删除或更新窗口,实现自定义视图的显示。在实际应用中,悬浮窗通常会用到`TYPE_PHONE`或者`...

    Android悬浮窗实现 使用WindowManager Demo

    接下来,在你的Activity中获取`WindowManager`实例,然后创建`LayoutParams`对象,设置悬浮窗的类型、位置、大小等属性。`LayoutParams`的类型应设置为`TYPE_SYSTEM_ALERT`,这样悬浮窗就能在所有应用之上显示,但...

    WindowManager实现悬浮窗口&可自由移动的悬浮窗口

    在Android开发中,实现一个可自由移动的悬浮窗口通常涉及到`WindowManager`服务的使用。`WindowManager`是Android系统提供的一个接口,允许应用程序在窗口管理器中添加、删除或配置视图。在这个主题中,我们将深入...

Global site tag (gtag.js) - Google Analytics