前言
你會(huì)發(fā)現(xiàn)QQ視頻的時(shí)候,就算手機(jī)回到主頁(yè),視頻小模塊依舊能懸浮在桌面上。還有當(dāng)年很火的各種手機(jī)殺毒軟件的桌面小助手,總能在呆在桌面。這種懸浮窗的操作就需要用到Window。
效果
gif圖看著有點(diǎn)兒卡,其實(shí)實(shí)際上還是很流暢的。
Window
Window即窗口,是個(gè)抽象類(lèi),具體實(shí)現(xiàn)就是PhoneWindow,對(duì)就是那個(gè)裝著DecorView的PhoneWindow。
Window整體分三種類(lèi)型:應(yīng)用Window、子Window、系統(tǒng)Window。
每種Window類(lèi)型又能分多個(gè)層級(jí):
層級(jí)高的Window會(huì)覆蓋層級(jí)低的Window,跟Android5.0引入的Z軸類(lèi)似。
權(quán)限
Android6.0以上,如果要用系統(tǒng)Window,我們需要申請(qǐng)懸浮窗權(quán)限。畢竟WindowManager.LayoutParams.TYPE_TOAST權(quán)限限制太多了。
Manifests: