Android中可自由移動懸浮窗口的Demo
前段時間搗鼓出Android懸浮窗口的實現,今天抽空寫了一個可自由移動懸浮窗口的Demo。
簡要說明如下:
1、通過覆寫懸浮View中onTouchEvent方法實現自由移動懸浮窗口。
2、懸浮窗口坐標的移動實際是windowMananager.LayoutParams中x和y的變換,但是要注意設置相應的gravity。
3、用windowManager創建的View,當不需要時,務必記住使用windowManager的removeView方法來移除,請在Activity相關生命周期中自行添加掃尾工作。
4、代碼中已經附上詳細注釋。有關參數具體含義,請自行參考SDK。
===============================
注意Demo中wmParams.format=1的屬性(我源碼中打了雙斜杠),如果啟用,圖片背景將會透明,效果圖如下:
================================
一些說明:
對於種種原因沒有查看SDK文檔的一些朋友,可能對我源碼中wmParams.type=2002這樣的語句不太了解其2002的具體意義,給出可讀性好點的語句。
如下:
wmParams.type=LayoutParams.TYPE_PHONE; //wmParams.format=PixelFormat.RGBA_8888; //設置圖片格式,效果為背景透明 wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE; /* * 下麵的flags屬性的效果形同“鎖定”。 * 懸浮窗不可觸摸,不接受任何事件,同時不影響後麵的事件響應。 wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCHABLE; */
最後更新:2017-04-02 06:51:43