Android系统服务WindowManagerWord格式文档下载.docx

上传人:b****5 文档编号:20483108 上传时间:2023-01-23 格式:DOCX 页数:9 大小:21.38KB
下载 相关 举报
Android系统服务WindowManagerWord格式文档下载.docx_第1页
第1页 / 共9页
Android系统服务WindowManagerWord格式文档下载.docx_第2页
第2页 / 共9页
Android系统服务WindowManagerWord格式文档下载.docx_第3页
第3页 / 共9页
Android系统服务WindowManagerWord格式文档下载.docx_第4页
第4页 / 共9页
Android系统服务WindowManagerWord格式文档下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Android系统服务WindowManagerWord格式文档下载.docx

《Android系统服务WindowManagerWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《Android系统服务WindowManagerWord格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。

Android系统服务WindowManagerWord格式文档下载.docx

12wmManager.addView(bb,wmParams);

//创建View

上面就是一个简单的例子,创建了一个Button对象然后通过WindowManager实例对象的addView添加这个ButtonVIew并根据相应的LayoutParams参数进行显示。

WindowManager对象的一些接口说明:

1)abstractDisplaygetDefaultDisplay();

//获取默认显示的Display对象。

2)abstractvoidremoveViewImmediate(Viewview);

//是removeView(View)的一个特殊扩展,在方法返回前能够立即调用该视图层次的View.onDetachedFromWindow()方法。

下面我们就重点介绍以下WindowManager接口的嵌套内部类LayoutParams。

WindowManager.LayoutParams是WindowManager接口的嵌套类;

继承于ViewGroup.LayoutParams。

它的内容十分丰富。

其实WindowManager.java的主要内容就是由这个类定义构成。

下面来分析一下这个类:

定义

publicstaticclassWindowManager.LayoutParams

extendsViewGroup.LayoutParamsimplementsParcelable

继承关系

java.lang.Object

↳android.view.ViewGroup.LayoutParams

↳android.view.WindowManager.LayoutParams

继承来的属性与常量

从ViewManager.LayoutParams继承来的属性:

android:

layout_height

Specifiesthebasicheightoftheview.

layout_width

Specifiesthebasicwidthoftheview.

从ViewManager.LayoutParams继承的常量:

FILL_PARENT

WRAP_CONTENT

MATCH_PARENT

两个变量:

width

height

属性及可用的常量定义

1.publicintx;

如果忽略gravity属性,那么它表示窗口的绝对X位置。

什么是gravity属性呢?

简单地说,就是窗口如何停靠。

当设置了Gravity.LEFT或Gravity.RIGHT之后,x值就表示到特定边的距离。

2.publicinty;

如果忽略gravity属性,那么它表示窗口的绝对Y位置。

当设置了Gravity.TOP或Gravity.BOTTOM之后,y值就表示到特定边的距离。

3.publicfloathorizontalWeight;

publicfloatverticalWeight;

在纵/横向上,为关联的view预留了多少扩展空间(像素)。

如果是0,那么此view不能被拉伸。

其他情况下,扩展空间(像素)将被widget所均分。

4.publicinttype;

窗口类型。

有3种主要类型:

a)Applicationwindows:

取值在FIRST_APPLICATION_WINDOW和LAST_APPLICATION_WINDOW之间。

是通常的、顶层的应用程序窗口。

必须将token设置成activity的token。

b)Sub_windows:

取值在FIRST_SUB_WINDOW和LAST_SUB_WINDOW之间。

与顶层窗口相关联,token必须设置为它所附着的宿主窗口的token。

c)Systemwindows:

取值在FIRST_SYSTEM_WINDOW和LAST_SYSTEM_WINDOW之间。

用于特定的系统功能。

它不能用于应用程序,使用时需要特殊权限。

下面定义了type的取值:

应用程序窗口。

publicstaticfinalintFIRST_APPLICATION_WINDOW=1;

所有程序窗口的“基地”窗口,其他应用程序窗口都显示在它上面。

publicstaticfinalintTYPE_BASE_APPLICATION=1;

普通应哟功能程序窗口。

token必须设置为Activity的token,以指出该窗口属谁。

publicstaticfinalintTYPE_APPLICATION=2;

用于应用程序启动时所显示的窗口。

应用本身不要使用这种类型。

它用于让系统显示些信息,直到应用程序可以开启自己的窗口。

publicstaticfinalintTYPE_APPLICATION_STARTING=3;

应用程序窗口结束。

publicstaticfinalintLAST_APPLICATION_WINDOW=99;

子窗口。

子窗口的Z序和坐标空间都依赖于他们的宿主窗口。

publicstaticfinalintFIRST_SUB_WINDOW=1000;

面板窗口,显示于宿主窗口上层。

publicstaticfinalintTYPE_APPLICATION_PANEL=FIRST_SUB_WINDOW;

媒体窗口,例如视频。

显示于宿主窗口下层。

publicstaticfinalintTYPE_APPLICATION_MEDIA=FIRST_SUB_WINDOW+1;

应用程序窗口的子面板。

显示于所有面板窗口的上层。

(GUI的一般规律,越“子”越靠上)

publicstaticfinalintTYPE_APPLICATION_SUB_PANEL=FIRST_SUB_WINDOW+2;

对话框。

类似于面板窗口,绘制类似于顶层窗口,而不是宿主的子窗口。

publicstaticfinalintTYPE_APPLICATION_ATTACHED_DIALOG=FIRST_SUB_WINDOW+3;

媒体信息。

显示在媒体层和程序窗口之间,需要实现透明(半透明)效果。

(例如显示字幕)

publicstaticfinalintTYPE_APPLICATION_MEDIA_OVERLAY=FIRST_SUB_WINDOW+4;

子窗口结束。

(Endoftypesofsub-windows)

publicstaticfinalintLAST_SUB_WINDOW=1999;

系统窗口。

非应用程序创建。

publicstaticfinalintFIRST_SYSTEM_WINDOW=2000;

状态栏。

只能有一个状态栏;

它位于屏幕顶端,其他窗口都位于它下方。

publicstaticfinalintTYPE_STATUS_BAR=FIRST_SYSTEM_WINDOW;

搜索栏。

只能有一个搜索栏;

它位于屏幕上方。

publicstaticfinalintTYPE_SEARCH_BAR=FIRST_SYSTEM_WINDOW+1;

电话窗口。

它用于电话交互(特别是呼入)。

它置于所有应用程序之上,状态栏之下。

publicstaticfinalintTYPE_PHONE=FIRST_SYSTEM_WINDOW+2;

系统提示。

它总是出现在应用程序窗口之上。

publicstaticfinalintTYPE_SYSTEM_ALERT=FIRST_SYSTEM_WINDOW+3;

锁屏窗口。

publicstaticfinalintTYPE_KEYGUARD=FIRST_SYSTEM_WINDOW+4;

信息窗口。

用于显示toast。

publicstaticfinalintTYPE_TOAST=FIRST_SYSTEM_WINDOW+5;

系统顶层窗口。

显示在其他一切内容之上。

此窗口不能获得输入焦点,否则影响锁屏。

publicstaticfinalintTYPE_SYSTEM_OVERLAY=FIRST_SYSTEM_WINDOW+6;

电话优先,当锁屏时显示。

publicstaticfinalintTYPE_PRIORITY_PHONE=FIRST_SYSTEM_WINDOW+7;

系统对话框。

(例如音量调节框)。

publicstaticfinalintTYPE_SYSTEM_DIALOG=FIRST_SYSTEM_WINDOW+8;

锁屏时显示的对话框。

publicstaticfinalintTYPE_KEYGUARD_DIALOG=FIRST_SYSTEM_WINDOW+9;

系统内部错误提示,显示于所有内容之上。

publicstaticfinalintTYPE_SYSTEM_ERROR=FIRST_SYSTEM_WINDOW+10;

内部输入法窗口,显示于普通UI之上。

应用程序可重新布局以免被此窗口覆盖。

publicstaticfinalintTYPE_INPUT_METHOD=FIRST_SYSTEM_WINDOW+11;

内部输入法对话框,显示于当前输入法窗口之上。

publicstaticfinalintTYPE_INPUT_METHOD_DIALOG=FIRST_SYSTEM_WINDOW+12;

墙纸窗口。

publicstaticfinalintTYPE_WALLPAPER=FIRST_SYSTEM_WINDOW+13;

状态栏的滑动面板。

publicstaticfinalintTYPE_STATUS_BAR_PANEL=FIRST_SYSTEM_WINDOW+14;

系统窗口结束。

publicstaticfinalintLAST_SYSTEM_WINDOW=2999;

5.publicintmemoryType;

指出窗口所使用的内存缓冲类型。

默认为NORMAL。

下面定义了memoryType的取值:

窗口缓冲位于主内存。

publicstaticfinalintMEMORY_TYPE_NORMAL=0;

窗口缓冲位于可以被DMA访问,或者硬件加速的内存区域。

publicstaticfinalintMEMORY_TYPE_HARDWARE=1;

窗口缓冲位于可被图形加速器访问的区域。

publicstaticfinalintMEMORY_TYPE_GPU=2;

窗口缓冲不拥有自己的缓冲区,不能被锁定。

缓冲区由本地方法提供。

publicstaticfinalintMEMORY_TYPE_PUSH_BUFFERS=3;

6.publicintflags;

行为选项/旗标,默认为none.

下面定义了flags的取值:

窗口之后的内容变暗。

publicstaticfinalintFLAG_DIM_BEHIND=0x00000002;

窗口之后的内容变模糊。

publicstaticfinalintFLAG_BLUR_BEHIND=0x00000004;

不许获得焦点。

publicstaticfinalintFLAG_NOT_FOCUSABLE=0x00000008;

不接受触摸屏事件。

publicstaticfinalintFLAG_NOT_TOUCHABLE=0x00000010;

当窗口可以获得焦点(没有设置FLAG_NOT_FOCUSALBE选项)时,仍然将窗口范围之外的点设备事件(鼠标、触摸屏)发送给后面的窗口处理。

否则它将独占所有的点设备事件,而不管它们是不是发生在窗口范围内。

publicstaticfinalintFLAG_NOT_TOUCH_MODAL=0x00000020;

如果设置了这个标志,当设备休眠时,点击触摸屏,设备将收到这个第一触摸事件。

通常第一触摸事件被系统所消耗,用户不会看到他们点击屏幕有什么反应。

publicstaticfinalintFLAG_TOUCHABLE_WHEN_WAKING=0x00000040;

当此窗口为用户可见时,保持设备常开,并保持亮度不变。

publicstaticfinalintFLAG_KEEP_SCREEN_ON=0x00000080;

窗口占满整个屏幕,忽略周围的装饰边框(例如状态栏)。

此窗口需考虑到装饰边框的内容。

publicstaticfinalintFLAG_LAYOUT_IN_SCREEN=0x00000100;

允许窗口扩展到屏幕之外。

publicstaticfinalintFLAG_LAYOUT_NO_LIMITS=0x00000200;

窗口显示时,隐藏所有的屏幕装饰(例如状态条)。

使窗口占用整个显示区域。

publicstaticfinalintFLAG_FULLSCREEN=0x00000400;

此选项将覆盖FLAG_FULLSCREEN选项,并强制屏幕装饰(如状态条)弹出。

publicstaticfinalintFLAG_FORCE_NOT_FULLSCREEN=0x00000800;

抖动。

指对半透明的显示方法。

又称“点透”。

图形处理较差的设备往往用“点透”替代Alpha混合。

publicstaticfinalintFLAG_DITHER=0x00001000;

不允许屏幕截图。

publicstaticfinalintFLAG_SECURE=0x00002000;

一种特殊模式,布局参数用于指示显示比例。

publicstaticfinalintFLAG_SCALED=0x00004000;

当屏幕有可能贴着脸时,这一选项可防止面颊对屏幕造成误操作。

publicstaticfinalintFLAG_IGNORE_CHEEK_PRESSES=0x00008000;

当请求布局时,你的窗口可能出现在状态栏的上面或下面,从而造成遮挡。

当设置这一选项后,窗口管理器将确保窗口内容不会被装饰条(状态栏)盖住。

publicstaticfinalintFLAG_LAYOUT_INSET_DECOR=0x00010000;

反转FLAG_NOT_FOCUSABLE选项。

如果同时设置了FLAG_NOT_FOCUSABLE选项和本选项,窗口将能够与输入法交互,允许输入法窗口覆盖;

如果FLAG_NOT_FOCUSABLE没有设置而设置了本选项,窗口不能与输入法交互,可以覆盖输入法窗口。

publicstaticfinalintFLAG_ALT_FOCUSABLE_IM=0x00020000;

如果你设置了FLAG_NOT_TOUCH_MODAL,那么当触屏事件发生在窗口之外事,可以通过设置此标志接收到一个MotionEvent.ACTION_OUTSIDE事件。

注意,你不会收到完整的down/move/up事件,只有第一次down事件时可以收到ACTION_OUTSIDE。

publicstaticfinalintFLAG_WATCH_OUTSIDE_TOUCH=0x00040000;

当屏幕锁定时,窗口可以被看到。

这使得应用程序窗口优先于锁屏界面。

可配合FLAG_KEEP_SCREEN_ON选项点亮屏幕并直接显示在锁屏界面之前。

可使用FLAG_DISMISS_KEYGUARD选项直接解除非加锁的锁屏状态。

此选项只用于最顶层的全屏幕窗口。

publicstaticfinalintFLAG_SHOW_WHEN_LOCKED=0x00080000;

请求系统墙纸显示在你的窗口后面。

窗口必须是半透明的。

publicstaticfinalintFLAG_SHOW_WALLPAPER=0x00100000;

窗口一旦显示出来,系统将点亮屏幕,正如用户唤醒设备那样。

publicstaticfinalintFLAG_TURN_SCREEN_ON=0x00200000;

解除锁屏。

只有锁屏界面不是加密的才能解锁。

如果锁屏界面是加密的,那么用户解锁之后才能看到此窗口,除非设置了FLAG_SHOW_WHEN_LOCKED选项。

publicstaticfinalintFLAG_DISMISS_KEYGUARD=0x00400000;

锁屏界面淡出时,继续运行它的动画。

publicstaticfinalintFLAG_KEEP_SURFACE_WHILE_ANIMATING=0x10000000;

以原始尺寸显示窗口。

用于在兼容模式下运行程序。

publicstaticfinalintFLAG_COMPATIBLE_WINDOW=0x20000000;

用于系统对话框。

设置此选项的窗口将无条件获得焦点。

publicstaticfinalintFLAG_SYSTEM_ERROR=0x40000000;

7.publicintsoftInputMode;

软输入法模式选项:

以下选项与softInputMode有关:

软输入区域是否可见。

publicstaticfinalintSOFT_INPUT_MASK_STATE=0x0f;

未指定状态。

publicstaticfinalintSOFT_INPUT_STATE_UNSPECIFIED=0;

不要修改软输入法区域的状态。

publicstaticfinalintSOFT_INPUT_STATE_UNCHANGED=1;

隐藏输入法区域(当用户进入窗口时)。

publicstaticfinalintSOFT_INPUT_STATE_HIDDEN=2;

当窗口获得焦点时,隐藏输入法区域。

publicstaticfinalintSOFT_INPUT_STATE_ALWAYS_HIDDEN=3;

显示输入法区域(当用户进入窗口时)。

publicstaticfinalintSOFT_INPUT_STATE_VISIBLE=4;

当窗口获得焦点时,显示输入法区域。

publicstaticfinalintSOFT_INPUT_STATE_ALWAYS_VISIBLE=5;

窗口应当主动调整,以适应软输入窗口。

publicstaticfinalintSOFT_INPUT_MASK_ADJUST=0xf0;

未指定状态,系统将根据窗口内容尝试选择一个输入法样式。

publicstaticfinalintSOFT_INPUT_ADJUST_UNSPECIFIED=0x00;

当输入法显示时,允许窗口重新计算尺寸,使内容不被输入法所覆盖。

不可与SOFT_INPUT_ADJUSP_PAN混合使用,如果两个都没有设置,系统将根据窗口内容自动设置一个选项。

publicstaticfinalintSOFT_INPUT_ADJUST_RESIZE=0x10;

输入法显示时平移窗口。

它不需要处理尺寸变化,框架能够移动窗口以确保输入焦点可见。

不可与SOFT_INPUT_ADJUST_RESIZE混合使用;

如果两个都没设置,系统将根据窗口内容自动设置一个选项。

publicstaticfinalintSOFT_INPUT_ADJUST_PAN=0x20;

当用户转至此窗口时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1