The interface that apps use to talk to the window manager.
这个接口用于与 window manager (窗口管理器, 应用框架层) 进行交互。
Use Context.getSystemService(Context.WINDOW_SERVICE)
to get
one of these.
通过 Context.getSystemService(Context.WINDOW_SERVICE)可以获取到WindowManager的实例.
继承关系
public interface WindowManager implements ViewManager
所属包
android.view.WindowManager
方法
获取默认显示的 Display 对象。
是removeView(View) 的一个特殊扩展,在方法返回前能够立即调用该视图层次的View.onDetachedFromWindow() 方法。
* 不适用于一般的程序;如果您要正确无误的使用它,那您就需要格外小心了。
嵌套类
WindowManager.LayoutParams
token
is
invalid.
WindowManager接口 的意义
这个接口用于与 window manager (窗口管理器) 进行交互。这个接口可以添加 view 到屏幕,也可以从屏幕删除 view 。它面向的对象一端是屏幕,另一端就是 view ,直接忽略我们以前的 Activity 或者 Dialog之类的东东。
window manager (窗口管理器)
Window Manager是Android中一个重要的服务(Service )。
Window Manager Service 是全局的,是唯一的。
它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window。Activity会将顶级的控件注册到 Window Manager 中,当用户真是触碰屏幕或键盘的时候,Window Manager就会通知到,而当控件有一些请求产生,也会经由ViewParent送回到Window Manager中。从而完成整个通信流程。
有些情况下,我们要求的只是简单的显示,用Activity显然是多余,这个时候,我们如何处理呢?
原来,整个Android的窗口机制是基于一个叫做
WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,直接忽略我们以前的Activity或者Dialog之类的东东。其实我们的Activity或者Diolog底层的实现也是通过WindowManager,这个
WindowManager是全局的,整个系统就是这个唯一的东东。它是显示View的最底层了。
写一个简单的代码:
WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE); Button view = new Button(this); view.setText("window manager test!"); WindowManager.LayoutParams mParams = new WindowManager.LayoutParams(); mWm.addView(view, mParams);
一般在刚开始开发android时,会犯一个错误,即在View的构造函数中获取getWidth()和getHeight(),当一个view对象创建时,android并不知道其大小,所以getWidth()和getHeight()返回的结果是0,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在onDraw(
) 却能取得长宽的原因。
WindowManager 接口,布布扣,bubuko.com
原文:http://www.cnblogs.com/ftxe/p/3642559.html