懸浮窗的層級

最近需要實現(xiàn)在白板App中點“打開”然后選擇文件再用懸浮窗展示的功能。打開文件是另外一個App贾节,剛開始我把代碼加在打開文件的這個App中魄咕,由于打開懸浮窗之后需要關(guān)閉打開文件的這個App吟税,所以我選擇先啟動Serivce犬辰,然后傳入Service的Context給懸浮窗進行打開,顯示白板的代碼如下:

package com.test.floatwindowtest;

import android.content.Context;
import android.graphics.PixelFormat;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.WindowManager;
import android.widget.RelativeLayout;

public class CustomFloatWindow extends RelativeLayout {

    protected WindowManager mWindowManager;

    private int mNormalWidth, mNormalHeight, mNormalOffsetX, mNormalOffsetY;

    private WindowManager.LayoutParams mLayoutParams;

    public CustomFloatWindow(Context context){
        super(context);

        mNormalWidth = DisplayUtil.dp2px(533);
        mNormalHeight = DisplayUtil.dp2px(602);
        mNormalOffsetX = DisplayUtil.dp2px(53);
        mNormalOffsetY = DisplayUtil.dp2px(42);

        mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        mLayoutParams = new WindowManager.LayoutParams();
        mLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY ;
        mLayoutParams.format = PixelFormat.RGBA_8888;
        mLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;

        LayoutInflater.from(context).inflate(R.layout.layout_float_window, this);
        setGravityOffset(Gravity.LEFT | Gravity.TOP, mNormalOffsetX, mNormalOffsetY);
        setSize(mNormalWidth, mNormalHeight);
    }

    private void setSize(int width, int height) {
        mLayoutParams.width = width;
        mLayoutParams.height = height;
    }

    private void setGravityOffset(int gravity, int xOffset, int yOffset) {
        mLayoutParams.gravity = gravity;
        mLayoutParams.x = xOffset;
        mLayoutParams.y = yOffset;
    }

    public void show(){
        mWindowManager.addView(this, mLayoutParams);
    }
}

功能確實實現(xiàn)了填物,但是有一個問題纹腌,因為這里type使用TYPE_APPLICATION_OVERLAY,導(dǎo)致懸浮窗顯示在所有窗口的上方滞磺,擋住了白板里的窗口升薯。想要解決這個問題,必須調(diào)整type屬性击困,但是低層級的懸浮窗需要傳入Activity的Context覆劈,這樣必須把顯示懸浮窗的代碼移入白板App中。這樣方案改成使用startActivityForResult啟動打開文件的App沛励,拿到文件路徑之后setResult返回到白板App中打開懸浮窗责语。當(dāng)時想當(dāng)然地覺得type的值越小,層級越低目派,于是把type改成FIRST_APPLICATION_WINDOW坤候,但是測試之后發(fā)現(xiàn)層級還不是最低的。最后把type改成FIRST_SUB_WINDOW達到了目的企蹭,懸浮窗顯示在所有白板窗口的下方白筹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谅摄,隨后出現(xiàn)的幾起案子徒河,更是在濱河造成了極大的恐慌,老刑警劉巖送漠,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顽照,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機代兵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門尼酿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人植影,你說我怎么就攤上這事裳擎。” “怎么了思币?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵鹿响,是天一觀的道長。 經(jīng)常有香客問我谷饿,道長惶我,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任各墨,我火速辦了婚禮,結(jié)果婚禮上启涯,老公的妹妹穿的比我還像新娘贬堵。我一直安慰自己,他們只是感情好结洼,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布黎做。 她就那樣靜靜地躺著,像睡著了一般松忍。 火紅的嫁衣襯著肌膚如雪蒸殿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天鸣峭,我揣著相機與錄音宏所,去河邊找鬼。 笑死摊溶,一個胖子當(dāng)著我的面吹牛爬骤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播莫换,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼霞玄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拉岁?” 一聲冷哼從身側(cè)響起坷剧,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喊暖,沒想到半個月后惫企,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡陵叽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年雅任,在試婚紗的時候發(fā)現(xiàn)自己被綠了风范。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡沪么,死狀恐怖硼婿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情禽车,我是刑警寧澤寇漫,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站殉摔,受9級特大地震影響州胳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逸月,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一栓撞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碗硬,春花似錦瓤湘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至翰意,卻和暖如春木人,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冀偶。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工醒第, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人进鸠。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓淘讥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親堤如。 傳聞我的和親對象是個殘疾皇子蒲列,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345