Android Q之氣泡彈窗的實(shí)現(xiàn)示例
在Android Q中,用戶(hù)可以借助氣泡,輕松地在設(shè)備上任何位置進(jìn)行多任務(wù)處理。氣泡內(nèi)置于“通知”系統(tǒng)中,它會(huì)浮動(dòng)在其他應(yīng)用的上層,并會(huì)跟隨用戶(hù)的移動(dòng)而移動(dòng)到屏幕的任何位置,用于取代SYSTEM_ALERT_WINDOW。氣泡可以展開(kāi)顯示應(yīng)用功能和信息,并在不使用時(shí)折疊起來(lái)。當(dāng)設(shè)備處于已鎖定狀態(tài)或始終保持活動(dòng)狀態(tài),氣泡會(huì)像通知那樣顯示。氣泡彈窗效果如下圖:

一、氣泡配置信息
氣泡是一種可以選擇停用的功能,在應(yīng)用顯示第一個(gè)氣泡時(shí),系統(tǒng)會(huì)彈出權(quán)限對(duì)話(huà)框,提供兩種選項(xiàng):
- 屏蔽來(lái)自您的應(yīng)用的所有氣泡 - 通知不會(huì)被屏蔽,但永遠(yuǎn)不會(huì)顯示為氣泡;
- 允許來(lái)自您的應(yīng)用的所有氣泡 - 通過(guò)
BubbleMetaData發(fā)送的所有通知都會(huì)顯示為氣泡;
氣泡是通過(guò)Notification API創(chuàng)建的。我們?nèi)绻屚ㄖ@示氣泡效果,需要添加一些配置信息。因?yàn)闅馀莸恼归_(kāi)視圖是根據(jù)選擇的Activity來(lái)創(chuàng)建的,此Activity需要經(jīng)過(guò)配置才能顯示為氣泡。此Activity必須是可以調(diào)整大小、嵌入式的,并始終可以在文檔模式界面下啟動(dòng)。如下代碼是氣泡Activity的配置:
<activity android:name=".BubbleActivity" android:theme="@style/AppTheme.NoActionBar" android:label="@string/title_activity_bubble" android:allowEmbedded="true" android:documentLaunchMode="always" android:resizeableActivity="true" />
二、發(fā)送氣泡
要發(fā)送氣泡,需要執(zhí)行如下步驟:
- 按照一般步驟創(chuàng)建通知;
- 調(diào)用 Notification.BubbleMetadata.Builder 以創(chuàng)建 BubbleMetadata 對(duì)象;
- 使用 setBubbleMetadata 將元數(shù)據(jù)添加到通知;
發(fā)送氣泡的實(shí)例代碼如下:
// 創(chuàng)建氣泡intent
Intent target = new Intent(mContext, BubbleActivity.class);
PendingIntent bubbleIntent =
PendingIntent.getActivity(mContext, 0, target, 0 /* flags */);
// 創(chuàng)建氣泡元數(shù)據(jù)
Notification.BubbleMetadata bubbleData =
new Notification.BubbleMetadata.Builder()
.setDesiredHeight(600)
// Note: although you can set the icon is not displayed in Q Beta 2
.setIcon(Icon.createWithResource(context, R.drawable.icon))
.setIntent(bubbleIntent)
.build();
// 創(chuàng)建通知
Person chatBot = new Person.Builder()
.setBot(true)
.setName("BubbleBot")
.setImportant(true)
.build();
Notification.Builder builder =
new Notification.Builder(mContext, CHANNEL_ID)
.setContentIntent(contentIntent)
.setSmallIcon(smallIcon)
.setBubbleMetadata(bubbleData);
三、創(chuàng)建展開(kāi)的氣泡
我們可以將氣泡配置為自動(dòng)展開(kāi)顯示,可以使用以下方法來(lái)設(shè)置用于啟用這些行為的標(biāo)記:setAutoExpandBubble()和setSuppressInitialNotification()。
Java實(shí)例代碼如下:
Notification.BubbleMetadata bubbleData = new Notification.BubbleMetadata.Builder() .setDesiredHeight(600) .setIntent(bubbleIntent) .setAutoExpandBubble(true) .setSuppressInitialNotification(true) .build();
kotlin實(shí)例代碼如下:
val bubbleMetadata = Notification.BubbleMetadata.Builder()
.setDesiredHeight(600)
.setIntent(bubbleIntent)
.setAutoExpandBubble(true)
.setSuppressInitialNotification(true)
.build()
到此這篇關(guān)于Android Q之氣泡彈窗的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)AndroidQ 氣泡彈窗內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- android 仿微信聊天氣泡效果實(shí)現(xiàn)思路
- Android氣泡效果實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)氣泡布局/彈窗效果 氣泡尖角方向及偏移量可控
- Android貝塞爾曲線(xiàn)初步學(xué)習(xí)第二課 仿QQ未讀消息氣泡拖拽黏連效果
- Android帶氣泡的第三方Tab選項(xiàng)卡
- Android使用貝塞爾曲線(xiàn)仿QQ聊天消息氣泡拖拽效果
- Android使用ViewDragHelper實(shí)現(xiàn)QQ聊天氣泡拖動(dòng)效果
- Android不顯示開(kāi)機(jī)向?qū)Ш烷_(kāi)機(jī)氣泡問(wèn)題
- Android實(shí)現(xiàn)氣泡動(dòng)畫(huà)
- Android自定義View實(shí)現(xiàn)氣泡動(dòng)畫(huà)
相關(guān)文章
Python 安裝setuptools和pip工具操作方法(必看)
下面小編就為大家?guī)?lái)一篇Python 安裝setuptools和pip工具操作方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
python為Django項(xiàng)目上的每個(gè)應(yīng)用程序創(chuàng)建不同的自定義404頁(yè)面(最佳答案)
這篇文章主要介紹了python為Django項(xiàng)目上的每個(gè)應(yīng)用程序創(chuàng)建不同的自定義404頁(yè)面,本文給出了最佳答案,大家可以跟隨小編一起學(xué)習(xí)下2020-03-03
基于python編寫(xiě)的shell腳本詳細(xì)講解
python相對(duì)于linux的shell腳本來(lái)說(shuō)更簡(jiǎn)單,功能更強(qiáng)大,代碼量也少很多,這里就為大家分享一下2021-09-09
python新式類(lèi)和經(jīng)典類(lèi)的區(qū)別實(shí)例分析
這篇文章主要介紹了python新式類(lèi)和經(jīng)典類(lèi)的區(qū)別,結(jié)合實(shí)例形式分析了python新式類(lèi)和經(jīng)典類(lèi)的功能、區(qū)別與使用方法,需要的朋友可以參考下2020-03-03
Python中Celery異步任務(wù)隊(duì)列的具體使用
Celery是一個(gè)用于處理分布式任務(wù)和作業(yè)隊(duì)列的異步任務(wù)隊(duì)列庫(kù),本文主要介紹了Python中Celery異步任務(wù)隊(duì)列的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02
python使用Pillow將照片轉(zhuǎn)換為1寸報(bào)名照片的教程分享
在現(xiàn)代科技時(shí)代,我們經(jīng)常需要調(diào)整和處理照片以適應(yīng)特定的需求和用途,本文將介紹如何使用wxPython和Pillow庫(kù),通過(guò)一個(gè)簡(jiǎn)單的圖形界面程序,將選擇的照片轉(zhuǎn)換為指定尺寸的JPG格式,并保存在桌面上,需要的朋友可以參考下2023-09-09
python多進(jìn)程并發(fā)demo實(shí)例解析
這篇文章主要介紹了python多進(jìn)程并發(fā)demo實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Python中單引號(hào)、雙引號(hào)和三引號(hào)具體的用法及注意點(diǎn)
這篇文章主要給大家介紹了關(guān)于Python中單引號(hào)、雙引號(hào)和三引號(hào)具體的用法及注意點(diǎn)的相關(guān)資料,Python中單引號(hào)、雙引號(hào)、三引號(hào)中使用常常困惑,想弄明白這三者相同點(diǎn)和不同點(diǎn),需要的朋友可以參考下2023-07-07

