Android Q之氣泡彈窗的實(shí)現(xiàn)示例
在Android Q中,用戶可以借助氣泡,輕松地在設(shè)備上任何位置進(jìn)行多任務(wù)處理。氣泡內(nèi)置于“通知”系統(tǒng)中,它會(huì)浮動(dòng)在其他應(yīng)用的上層,并會(huì)跟隨用戶的移動(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ì)話框,提供兩種選項(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貝塞爾曲線初步學(xué)習(xí)第二課 仿QQ未讀消息氣泡拖拽黏連效果
- Android帶氣泡的第三方Tab選項(xiàng)卡
- Android使用貝塞爾曲線仿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、java等哪一門(mén)編程語(yǔ)言適合人工智能?
哪一門(mén)編程語(yǔ)言適合人工智能?這篇文章主要為大家詳細(xì)介紹了python編程語(yǔ)言適合人工智能的原因、優(yōu)點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11pycharm命令終端運(yùn)行python文件以及傳遞參數(shù)方式
這篇文章主要介紹了pycharm命令終端運(yùn)行python文件以及傳遞參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Python進(jìn)階-函數(shù)默認(rèn)參數(shù)(詳解)
下面小編就為大家?guī)?lái)一篇Python進(jìn)階-函數(shù)默認(rèn)參數(shù)(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05python數(shù)據(jù)可視化plt庫(kù)實(shí)例詳解
這篇文章主要介紹了python可視化數(shù)據(jù)plt庫(kù)實(shí)例,下面使用pycharm環(huán)境給大家詳細(xì)介紹,文中提到j(luò)upyter和pycharm環(huán)境的差別,需要的朋友可以參考下2021-06-06Swin?Transformer模塊集成到Y(jié)OLOv5目標(biāo)檢測(cè)算法中實(shí)現(xiàn)
這篇文章主要為大家介紹了Swin?Transformer模塊集成到Y(jié)OLOv5目標(biāo)檢測(cè)算法中實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python Numpy中數(shù)據(jù)的常用保存與讀取方法
這篇文章主要介紹了Python Numpy中數(shù)據(jù)的常用保存與讀取方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04django自定義Field實(shí)現(xiàn)一個(gè)字段存儲(chǔ)以逗號(hào)分隔的字符串
這篇文章主要介紹了django自定義Field實(shí)現(xiàn)一個(gè)字段存儲(chǔ)以逗號(hào)分隔的字符串的示例,需要的朋友可以參考下2014-04-04