WindowManager的使用
簡(jiǎn)介:有時(shí)候我們需要顯示一個(gè)懸浮窗,而這個(gè)懸浮窗不只是顯示在我們的應(yīng)用中,還可以顯示在別的應(yīng)用中,比如桌面上的懸浮球,來(lái)去電界面的歸屬地等等,這種效果就需要使用WindowManager來(lái)實(shí)現(xiàn)。本文就詳細(xì)地介紹了WindowManager的使用。
1. WindowManager,Window的介紹
1.1. Window
Window表示一個(gè)窗口。對(duì)于Android里的Window,我們可以類比Windows系統(tǒng)中的Window,在Windows中,每打開(kāi)一個(gè)軟件,都會(huì)彈出一個(gè)窗口,這個(gè)窗口右上角有最小化,最大化,關(guān)閉按鈕,做了某些操作時(shí),也可能會(huì)彈出一個(gè)窗口,下面可能會(huì)有確定,取消之類的按鈕,這些都是Windows系統(tǒng)中的窗口。如圖所示:
在Android里,也有Window的概念,但是Android里的Window沒(méi)有邊框, 也沒(méi)有最大最小關(guān)閉按鈕的。如圖所示:
Android中所有的界面都是顯示在一個(gè)個(gè)Window中的,包括Activity,Dialog,Toast,甚至狀態(tài)欄,最近應(yīng)用列表,都是在Window中顯示的。只是我們看不到這些Window的邊框,只能看到里面的內(nèi)容。其實(shí) Window并不能真正的顯示內(nèi)容,它只是一個(gè)虛擬的"框",真正能顯示內(nèi)容的是View。Window是View的直接管理者,觸摸事件也是先由Window接收,然后傳遞給View的。
Window是一個(gè)抽象類,在Android手機(jī)中,Window的實(shí)現(xiàn)類是PhoneWindow。
1.2. WindowManager
WindowManager是Window的管理者,對(duì)應(yīng)著系統(tǒng)底層的一個(gè)服務(wù):WindowManagerService。
我們無(wú)法直接訪問(wèn)Window,要操作Window,必須通過(guò)WindowManager。WindowManager有三個(gè)常用方法:addView,removeView,updateViewLayout我們可以通過(guò)WindowManager往屏幕上添加/刪除一個(gè)Window,或者通過(guò)它修改一個(gè)Window的布局參數(shù)。
WindowManager是一個(gè)接口,在Android中,WindowManager的實(shí)現(xiàn)類WindowManagerImpl。
本文版權(quán)歸傳智播客Android培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Android培訓(xùn)學(xué)院
首發(fā):http://metathetuscanyresort.com/Android