天天看點

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