閱讀719 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android中可自由移動懸浮窗口的Demo

 

前段時間搗鼓出Android懸浮窗口的實現,今天抽空寫了一個可自由移動懸浮窗口的Demo。

簡要說明如下:

1、通過覆寫懸浮View中onTouchEvent方法實現自由移動懸浮窗口。

2、懸浮窗口坐標的移動實際是windowMananager.LayoutParams中x和y的變換,但是要注意設置相應的gravity。

3、用windowManager創建的View,當不需要時,務必記住使用windowManager的removeView方法來移除,請在Activity相關生命周期中自行添加掃尾工作。

4、代碼中已經附上詳細注釋。有關參數具體含義,請自行參考SDK。

Demo源碼下載地址

===============================

注意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

  上一篇:go 6.1.5 GridView詳解編輯
  下一篇:go Android Market的 Loading效果