Android-推薦一個(gè)全局懸浮窗的框架(FloatWindow)

圖片來源網(wǎng)絡(luò)鸟辅,入侵必刪

在日常Android開發(fā)當(dāng)中怕膛,我們可能要實(shí)現(xiàn)全局懸浮窗的需求朴上。這里分享一個(gè)快速實(shí)現(xiàn)的框架,希望能幫小伙伴們提高開發(fā)效率懂鸵。

FloatWindow

一個(gè)全局懸浮窗的框架偏螺,主要特性如下:
1.支持拖動(dòng),提供自動(dòng)貼邊等動(dòng)畫
2.內(nèi)部自動(dòng)進(jìn)行權(quán)限申請(qǐng)操作
3.可自由指定要顯示懸浮窗的界面
4.應(yīng)用退到后臺(tái)時(shí)匆光,懸浮窗會(huì)自動(dòng)隱藏
5.除小米外砖茸,4.4~7.0 無需權(quán)限申請(qǐng)
6.位置及寬高可設(shè)置百分比值,輕松適配各分辨率
7.支持權(quán)限申請(qǐng)結(jié)果殴穴、位置等狀態(tài)監(jiān)聽
8.鏈?zhǔn)秸{(diào)用凉夯,簡潔清爽

集成到項(xiàng)目

項(xiàng)目的build.gradle:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

應(yīng)用的build.gradle:

dependencies {
    implementation 'com.github.yhaolpz:FloatWindow:1.0.9'
}

截止我發(fā)布博客,開源庫版本是1.0.9采幌。如果想要查看最新版本劲够,請(qǐng)看開源庫wiki

需要權(quán)限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

基礎(chǔ)使用

FloatWindow
       .with(getApplicationContext())
       .setView(view)
       .setWidth(100)                               //設(shè)置控件寬高
       .setHeight(Screen.width,0.2f)
       .setX(100)                                   //設(shè)置控件初始位置
       .setY(Screen.height,0.3f)
       .setDesktopShow(true)                        //桌面顯示
       .setViewStateListener(mViewStateListener)    //監(jiān)聽?wèi)腋】丶顟B(tài)改變
       .setPermissionListener(mPermissionListener)  //監(jiān)聽權(quán)限申請(qǐng)結(jié)果
       .build();

可以指定界面顯示

.setFilter(true, A_Activity.class, C_Activity.class)

部分界面不展示

.setFilter(false, B_Activity.class)

可拖動(dòng)懸浮窗以及回彈動(dòng)畫

.setMoveType(MoveType.slide)
.setMoveStyle(500, new AccelerateInterpolator())  //貼邊動(dòng)畫時(shí)長為500ms,加速插值器

主要有4種MoveType:

  • MoveType.slide : 可拖動(dòng)休傍,釋放后自動(dòng)貼邊 (默認(rèn))
  • MoveType.back : 可拖動(dòng)征绎,釋放后自動(dòng)回到原位置
  • MoveType.active : 可拖動(dòng)
  • MoveType.inactive : 不可拖動(dòng)

setMoveStyle 方法可設(shè)置動(dòng)畫效果,只在 MoveType.slide 或 MoveType.back 模式下設(shè)置此項(xiàng)才有意義磨取。默認(rèn)減速插值器人柿,默認(rèn)動(dòng)畫時(shí)長為 300ms。

多個(gè)懸浮窗


FloatWindow
        .with(getApplicationContext())
        .setView(imageView)
        .build();

FloatWindow
      .with(getApplicationContext())
      .setView(button)
      .setTag("new")
      .build();


FloatWindow.get("new").show();
FloatWindow.get("new").hide();
FloatWindow.destroy("new");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末忙厌,一起剝皮案震驚了整個(gè)濱河市凫岖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逢净,老刑警劉巖哥放,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異爹土,居然都是意外死亡甥雕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門胀茵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來社露,“玉大人,你說我怎么就攤上這事琼娘∏偷埽” “怎么了赁濒?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長孟害。 經(jīng)常有香客問我拒炎,道長,這世上最難降的妖魔是什么挨务? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任击你,我火速辦了婚禮,結(jié)果婚禮上谎柄,老公的妹妹穿的比我還像新娘丁侄。我一直安慰自己,他們只是感情好朝巫,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布鸿摇。 她就那樣靜靜地躺著,像睡著了一般劈猿。 火紅的嫁衣襯著肌膚如雪拙吉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天揪荣,我揣著相機(jī)與錄音筷黔,去河邊找鬼。 笑死仗颈,一個(gè)胖子當(dāng)著我的面吹牛佛舱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挨决,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼请祖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脖祈?” 一聲冷哼從身側(cè)響起肆捕,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撒犀,沒想到半個(gè)月后福压,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡或舞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蒙幻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片映凳。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖邮破,靈堂內(nèi)的尸體忽然破棺而出诈豌,到底是詐尸還是另有隱情仆救,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布矫渔,位于F島的核電站彤蔽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏庙洼。R本人自食惡果不足惜顿痪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望油够。 院中可真熱鬧蚁袭,春花似錦、人聲如沸石咬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鬼悠。三九已至删性,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間焕窝,已是汗流浹背镇匀。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留袜啃,地道東北人汗侵。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像群发,于是被迫代替她去往敵國和親晰韵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容