1. 程式人生 > >WindowManager實現懸浮可拖動效果

WindowManager實現懸浮可拖動效果

現在360手機衛士有個流量統計的效果,開啟流量統計後,在桌面上會出現一個顯示流量的窗體,在任何介面都可以自由拖動。

模仿這個功能,做了一個統計手機訊號強度的Demo, 介面效果如下:


從上面的截圖可以看出,當開啟手機訊號懸浮框後,預設在右上角會出現一個小窗體(一個圖示加上一個訊號強度),這個窗體附在鎖屏上(預設最上面的一層是鎖屏介面),可以隨意拖動。

介面佈局什麼的,在這裡就不說了。這個小窗體實際是一個Service,一直在後臺執行。

建立窗體的核心程式碼如下:


需要注意的地方都已經加了註釋,特別要注意那幾個type,有的type可以讓窗體只在某個應用介面上顯示,鎖屏介面不顯示等等,ERROR的級別是最高的,表示可以在任何介面都可以顯示窗體。接下來就是實現拖動的效果,程式碼如下:


基本上核心程式碼都已經附上了,大多數都是原生API就可以實現,具體細節可以根據具體情況來除錯。