天天看点

Android Manager之WindowManager(窗口管理服务)

1.简介

WindowManager(窗口管理服务), 它是显示View的最底层,Toast,Activity,Dialog的底层都用到了这个WindowManager, 他是全局的!该类的核心无非:调用addView,removeView,updateViewLayout这几个方法 来显示View以及通过WindowManager.LayoutParams这个API来设置相关的属性。

Android为我们提供的用于与窗口管理器进行交互的一个API。我们都知道App的界面都是 由一个个的Acitivty组成,而Activity又由View组成,当我们想显示一个界面的时候, 第一时间想起的是:Activity,又或者是Dialog和Toast。 但是有些情况下,前面这三者可能满足不了我们的需求,比如我们仅仅是一个简单的显示 用Activity显得有点多余了,而Dialog又需要Context对象,Toast又不可以点击 。对于以上的情况我们可以利用WindowManager添加View到屏幕上, 或者从屏幕上移除View。他就是管理Android窗口机制的一个接口,显示View的最底层。

2.获得WindowManager实例

2.1.获得WindowManager对象

WindowManager wm = getApplicationContext().getSystemService(Context. WINDOW_ SERVICE);

2.2.获得WindowManager.LayoutParams对象

WindowManager.LayoutParams wmParams=new WindowManager.LayoutParams();

3.WindowManager使用实例

3.1.设置窗口全屏显示

代码:

Android Manager之WindowManager(窗口管理服务)

之前

Android Manager之WindowManager(窗口管理服务)

之后

Android Manager之WindowManager(窗口管理服务)

3.2.保持屏幕常亮

Android Manager之WindowManager(窗口管理服务)

3.3.获取屏幕宽高

Android Manager之WindowManager(窗口管理服务)
Android Manager之WindowManager(窗口管理服务)

附1:WindowManager官方链接:

http://androiddoc.qiniudn.com/reference/android/view/WindowManager.html

附2:Android 悬浮窗效果

1.https://blog.csdn.net/guolin_blog/article/details/16919859

2.https://blog.csdn.net/guolin_blog/article/details/8689140