在 Android 中实现气泡

Android超简单气泡效果,附带学习经验 refreshBubbles(); postInvalidate(); } catch (InterruptedException e) { System.out.println("Bubble线程结束"); break; } } } }; mBubbleThread.start(); } #### 1.4... 阅读详情

前言

几乎我们所有人都使用过 Facebook Messenger 应用程序。除了消息功能之外,它还有一个非常酷的功能,称为Bubbles。因此,每当有消息进入我们的收件箱时,Bubble 就会在屏幕上显示为消息通知。最好的部分是只需按下气泡即可启动活动。例如,在 Facebook Messenger 应用程序中,当您按下 Bubble 时,消息屏幕将打开,您可以使用此消息屏幕发送消息。下面是一个来自 Google Developers Android 网站的气泡示例:

在您的 Android 应用程序中添加 Bubble 功能是一个非常酷的想法,但过程非常困难和复杂。因此,为了简化此过程并为用户提供更一致的体验,在 Android Q 的 Beta 预览版中添加了 Bubbles 功能。因此,通过使用 Bubble API,您可以在现有的其他应用程序之上运行您的应用程序在移动设备中。

在这篇文章中,我们将学习如何在我们的 Android 应用程序中使用 Bubbles。那么,让我们开始吧。

什么是气泡?

Bubbles 是 Android Q 中的一项新预览功能,可帮助您执行多个任务或从移动设备的任何部分使用多个应用程序。例如,如果您正在使用 Gmail 应用程序,并且在某个特定时刻,一条消息进入了您的 Facebook Messenger 应用程序,那么此时,您会在屏幕上看到一个气泡,您可以将该气泡调整为移动屏幕,最好的部分是通过点击气泡,您可以打开 Facebook Messenger 应用程序并正常使用它。

想一想,如果您正在使用 Youtube 应用程序,一段时间后,您开始使用 Gmail 应用程序,然后过了一段时间,您开始使用其他应用程序。那么,如果您想一直看到应用程序的通知怎么办?您必须定期打开该应用程序,或者您必须保持该应用程序处于打开状态。

但是通过在您的应用程序中使用 Bubbles,您可以始终拥有一个应用程序。无论您使用哪个应用程序,Bubble 都会出现在所有应用程序之上。

气泡是使用通知 API 创建的。因此,使用 Bubble 就像在应用程序中使用通知一样简单。如果你想冒泡你的通知,那么你必须在通知中添加一些额外的数据。

实施气泡的先决条件

在您的应用程序中实现 Bubbles 之前,您必须具备以下条件:

  • Android Studio 3.5 预览版:要获得 Android Studio 3.5 预览版,请访问Android Studio网站并下载预览版。
  • Android Q 预览版 SDK:要安装适用于 Android Q 的预览版 SDK,请按照以下步骤操作:
  1. 在 Android Studio 中,单击工具 > SDK 管理器。
  2. 在SDK Platforms选项卡中,选择Android Q Preview。
  3. 在SDK Tools选项卡中,选择Android SDK Build-Tools 28(或更高版本)。
  4. 单击确定开始安装。

之后,将您的 compileSdkVersion 和 targetSdkVersion 更改为 29

android {
    compileSdkVersion 29

    defaultConfig {
        targetSdkVersion 29
    }
    ...
}
  • 具有 Android Q Beta 的设备或具有 Android Q Beta 的模拟器(运行您的应用程序)
    气泡的实现

如果你想从 Bubble 打开一个活动,那么你必须在AndroidManifest.xml文件中定义它:

<activity
  android:name=".bubbles.BubbleActivity"
  android:theme="@style/AppTheme.NoActionBar"
  android:label="@string/title_activity_bubble"
  android:allowEmbedded="true"
  android:documentLaunchMode="always"
  android:resizeableActivity="true"/>

如果要显示多个相同类型的气泡,则必须将documentLaunchMode设置为“always”。

现在,我们的BubbleActivtiy添加了 Bubble,即BubbleActivity将从 Bubble 中启动。

注意:Bubble 启动的 Activity 与正常 Activity 的生命周期相同。

现在,让我们继续讨论 Kotlin 部分。您必须做的第一步是为 Bubble 制定意图:

// Create bubble intent
val target = Intent(context, BubbleActivity::class.java)
val bubbleIntent = PendingIntent.getActivity(context, 0, target, 0 /* flags */)

创建意图后,根据您的需要创建之前创建的通知:

// Create notification
val chatBot = Person.Builder()
    .setBot(true)
    .setName("BubbleBot")
    .setImportant(true)
    .build()

现在,为了在您的移动屏幕上显示 Bubble,您必须添加一些BubbleMetaData并将其与之前创建的意图连接:

// Create bubble metadata
val bubbleData = 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()

默认情况下,您需要点击气泡来展开气泡的内容或启动与气泡关联的活动。但是如果你想让你的 Bubble 自动打开,那么你必须将setAutoExpandBubble的值设置为true。例如:

val bubbleMetadata = Notification.BubbleMetadata.Builder()
    .setDesiredHeight(600)
    .setIntent(bubbleIntent)
    .setAutoExpandBubble(true)
    .setSuppressInitialNotification(true)
    .build()

现在,在设计完 Bubble 的观感并将 Bubble 与 Intent 连接之后,我们下一步就是将通知与 Bubble 连接起来,这样,每当有通知到来时,Bubble 就会打开。

val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setBubbleMetadata(bubbleData)
    .addPerson(chatBot

何时使用气泡?

在每种情况下都使用气泡不是一个好习惯。您应该通过考虑某些事情来使用 Bubbles:

  • 如果要使用 Bubble 发送的通知非常重要,或者用户选择使用 Bubbles 进行通知。
  • 您应该确保气泡也应该像正常通知一样工作,因为用户可以禁用气泡的功能,在这种情况下,您必须以正常方式显示您的通知。
  • 使用 Bubble 时,请确保使用该 Bubble 执行的操作非常少。

结论

在这篇文章中,我们看到了 Android Q 的一项很酷的功能,即 Bubbles。我们学习了如何在应用程序中使用气泡来显示应用程序的通知。最后,我们还看到了使用 Bubbles 时应牢记的要点。

Android-自定义气泡View 实践背景 在即时通讯类应用里,很常见各种气泡布局包裹消息,通常我们采用.9图实现。但是使用气泡图片面临着间距不可控,如果是图片消息,此方法就无法实现气泡。本文将介绍如何更加用优雅的方式去实现自定义气泡布局。 PS前置知识: 如何自定义view、XFermode混合图层、path概念以及贝赛尔曲线。 惯例,我们先看下最终要实现的效果图,如下图,总共有5种类型,基本满足日常需要,可以根据需要... 阅读详情

相关推荐

android 随意漂浮动画,Android实现气泡漂浮动画,类似IOS Game Center中气泡动画

网上没找到,于是自己写了一个,简单的算法,利用 PropertyValuesHolder实现多个动画的集合,不多说,直接上代码吧,非常好理解:/***气泡漂浮动画*@paramview*@paramduration动画运行时间*@paramoffset动画运行幅度*@paramrepeatCount动画运行次数*@return*/publicstaticO...

weixin_28928039的博客 1212

旧代码翻新--Android之泡泡效果bubble

更新第一个Android之泡泡效果bubble,在android 8上系统上通过,开发工具android studio 2022.3.1。从淘宝上买了些android代码,代码量很大,但是都是些旧代码,没有什么用处,把这些这些代码更新一下,算是练手了。第一个Android之泡泡效果bubble。

佳泰生活 725

微信聊天气泡UI实现:Android开发实战指南

微信聊天气泡是即时通讯界面中至关重要的一部分,它不仅仅承载了聊天内容,还传递着对话者的情绪和氛围。在本章中,我们将开始探讨微信聊天气泡的设计基础,并逐步深入至各个技术细节,最终实现一个功能完善、用户体验优秀的聊天气泡UI组件。在Android布局中,Gravity属性非常关键,用于指定组件内部内容的对齐方式。对于TextView来说,Gravity属性可以控制文本的水平和垂直对齐。例如:<TextView在上面的代码中,属性会将文本内容在TextView内部居中显示。

weixin_33531560的博客 2252

Android自定义实现气泡显示进度功能

三角指示标部分位置的确认如要是利用PathMeasure的,getPosTan方法根据进度条的进度获取到直角点A所在的坐标,由于我们这里是将该三角形设置为等腰直角三角形,所以该三角形的高等于斜边的1/2因此可以推断出B点和C点的位置,进而根据直角点坐标来推算出整个三角形的位置。这只是能够实现出气泡的效果,实际上只通过这样粗略的算法,实现的气泡并不圆润,因此还需更精细的打磨,比如给矩形部分加入一定的内边距等(这些都在下面代码中会逐一实现)。

金戈鐡馬 718

模拟QQ消息气泡的Android实现指南

在构建即时通讯应用时,气泡容器设计与自定义View的实现至关重要。它们是构建美观、易用且富有吸引力的用户界面的基础。本章将详细探讨如何设计和实现自定义的气泡容器View,这包括了解和分析基础的布局管理、视图自定义以及如何适配不同屏幕尺寸。除了基本的布局和绘制,我们可以定义自己的属性(通过在中声明),以便在XML布局文件中直接配置View的外观和行为。这为我们提供了极大的灵活性和可复用性。在中:使用这些自定义属性,我们可以在自定义View的构造函数中读取并应用这些值。

weixin_32312889的博客 895

Android气泡短信界面仿效实现DEMO

Android权限系统是Android安全模型的核心部分,它确保应用在执行某些操作之前获得了用户的同意。以下是一些Android权限管理的关键点:权限声明:在应用的文件中声明应用需要的权限,这是在安装应用之前系统需要检查的内容。权限请求:在应用运行时,如果需要执行受保护的操作(如访问联系人、发送短信等),则需要向用户请求相应的权限。这通常是通过弹出对话框的形式来进行。权限授予与撤销:用户可以授予或撤销应用的权限。权限的授予可以在安装时进行,也可以在应用运行时进行。应用可以使用。

weixin_28850145的博客 736

android 气泡提示框_Android Q之气泡弹窗的实现示例

在Android Q中,用户可以借助气泡,轻松地在设备上任何位置进行多任务处理。气泡内置于“通知”系统中,它会浮动在其他应用的上层,并会跟随用户的移动而移动到屏幕的任何位置,用于取代SYSTEM_ALERT_WINDOW。气泡可以展开显示应用功能和信息,并在不使用时折叠起来。当设备处于已锁定状态或始终保持活动状态,气泡会像通知那样显示。气泡弹窗效果如下图:一、气泡配置信息气泡是一种可以选择停用的功...

weixin_39719727的博客 1830

Android之泡泡效果bubble

Android之泡泡效果bubble升级到android8,api 26以上,anddroid studio 2022.3.1 旧代码升级

Android qq消息气泡实现效果,Android 实现仿QQ拖拽气泡效果的示例

效果图:一、实现思路在列表中默认使用自定义的TextView控件来展示消息气泡,在自定义的TextView控件中重写onTouchEvent方法,然后在DOWN、MOVE、UP事件中分别处理拖拽效果。整个拖拽效果我们可以拆分成以下几步来实现:1.默认状态2.两气泡相连状态3.两气泡分离状态4.气泡消失状态二、功能实现默认状态:用来做一个状态的标识,无需特别处理。两气泡相连状态:绘制一个固定圆和一个...

weixin_36462845的博客 650

Android-BubbleLayout弹出提示气泡

BubbleLayout 弹出提示气泡

555时基芯片的5种经典电路设计:从方波发生器到PWM调光实战

本文深入解析了555时基芯片的5种经典电路设计,从基础的无稳态方波发生器、单稳态触发器,到实用的占空比可调PWM信号源,并重点介绍了如何引入TVS保护电路增强系统鲁棒性。最后通过一个带保护的PWM LED调光台灯实战项目,综合展示了信号生成、功率驱动与电路保护的核心技术,是电子爱好者掌握模拟电路设计与应用的绝佳指南。

weixin_29207439的博客 492

android 组件功能 气泡功能,Android气泡效果实现方法

本文实例讲述了Android气泡效果实现方法。分享给大家供大家参考,具体如下:最近在看以前在eoe上收藏的一些源代码,准备将这些代码加上一些自己的注释,然后贴出来,方便自己日后查阅,和刚入门的人来学习。今天先看一个气泡窗口,先看一下效果图和目录结构,然后再上代码通过第一幅图,我们可以看到一个气泡窗口,这个窗口的结构是里面有2个TextView和1个气泡的背景,这个2个TextView放在了over...

weixin_39989668的博客 560

一起学习Avalonia(十三)

Avalonia 前面已经简单介绍了一下相关开发,有一个系统的了解。 到今天Avalonia已经基本成熟,但是扩展支持的还是不可能达到大企业的,我估计这也不可能。考虑了下,微软的MAUI框架可能会普及性更高,Avalonia也是我无意间知道的。 微软毕竟是会宣讲的全球。并且微软全球研发投入很大,全部专职开发,这种速度当然大。但是MAUI根据计划,可能还要很长时间,而且是社区支持Linux,估计时间更久。这不能适应现在的国产化开发。 预计一段时间还是需要Avalonia作为优先。当前Avalonia使

jinyuttt的专栏 4087

Android实现点击产生气泡的效果

是不是感觉到PC端有各种各样的小软件可以让PC端点击产生各种绚丽的效果,感觉很炫酷吧,今天我给大家带来了一款安卓端实现点击产生气泡效果的小程序。大家可以植入现有的App中,让其更加绚丽多彩。 1、首先要定义好了气泡的动画,这里我采用的是逐帧动画,这里就不发图片了,大家可以找到自己想要的效果进行替换。动画的实现代码如下: <animation-list xmlns:android="http:/

Android呆呆的博客 2046

Multisim 11.0的安装破解汉化步骤

15:打开注册机,选择管理员运行,默认第一项,选择生成文件路径,这里不要随意选择,要找到你安装Multisim安装路径下Shard下的License Manager路径下,否则会报错,破解失败。14:后面会出现一个更新提示,选择否,然后选择重启电脑后,先不要选择重启电脑,在这里出现了问题(可能敲击回车,默认去重启电脑了),所以我说不要重启电脑,重启破解时右下角出现这,点击否。17:重启电脑,如果前面重启过,那可以跳过重启,应用程序下找到下图所示,启动。16:点击确认覆盖,路径下生成了该文件。

qq_53260940的博客 2377

博通PEX89000 PCIe 5.0交换芯片:如何为AI集群构建高效GPU互联架构

本文深入解析了博通PEX89000 PCIe 5.0交换芯片如何为AI集群构建高效的GPU互联架构。该芯片通过提供高带宽、低延迟的PCIe 5.0交换能力,打破传统GPU通信的带宽瓶颈,并支持多主机共享、资源池化及软件定义拓扑,从而显著提升大规模AI训练与推理任务的效率与资源利用率。

weixin_29214559的博客 412

Android Stuido中实现点击按钮弹出气泡

今天和大家分享一下实现Android Studio实现点击按钮弹出气泡的实现过程。一开始制作的时候我也不知道具体怎么实现,但是网上看了一些代码之后自己尝试了之后终于实现了这个功能,使用PopWindow就可以实现气泡的谈弹出。 实现效果图 实现代码如下 MainActivity package com.example.qipao; import android.app.Activity; i...

weixin_44223883的博客 2918

Ascend开发包Acllite安装

设置环境变量,配置程序编译依赖的头文件,库文件路径。“$HOME/Ascend”请替换“Ascend-cann-toolkit”包的实际安装路径。将YOLOV7原始模型转换为适配昇腾310处理器的离线模型(*.om文件),放在model路径下。运行完成后,会在样例工程的out目录下生成推理后的图片,显示对比结果如下所示。可以使用以下两种方式下载,请选择其中一种进行源码准备。请从以下链接获取该样例的输入图片,放在data目录下。执行以下命令,执行编译脚本,开始样例编译。执行运行脚本,开始样例运行。

如果想成为中心,那么就到中心去吧。 318

Android 如何实现气泡选择动画

跨平台用户体验统一正处于增长趋势:早些时候 iOS 和安卓有着不同的体验,但是最近在应用设计以及交互方面变得越来越接近。从安卓 Nougat 的底部导航到分屏特性,两个平台间有了许多相同之处。对设计师而言,我们可以将主流功能设计成两个平台一致(过去需要单独设计)。对开发者而言,这是一个提高、改进开发技巧的好机会。所以我们决定开发一个安卓气泡选择的组件库 —— 灵感来自于苹果音乐的气泡选择。 先...

Android 开发架构 1949

ESP-SPARKBOT AI 智能机器人:v1.2 全流程复刻指南

本文介绍 ESP-SPARKBOT AI 智能机器人 v1.2 版本的全流程复刻,包含 PCB 、3D 打印、固件烧录、常见问题解决、参考资料等

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 9258

2、机器人控制技术:阻抗/导纳控制与强化学习的融合

本文探讨了阻抗/导纳控制与强化学习在机器人控制中的融合应用。阻抗/导纳控制广泛应用于外骨骼和跟踪控制,通过改进方案提升建模误差下的鲁棒性;强化学习则为解决维度灾难、实现最优交互提供了有效途径,尤其在大输入空间、连续时间系统、冗余机器人及鲁棒控制中表现突出。结合近似器与合理奖励设计,强化学习可在无模型情况下实现高效控制。未来,两者融合有望推动更智能、更安全的机器人系统发展。

ice55的博客 300

android 画尖角气泡,Android 实现气泡布局/弹窗,可控制气泡尖角方向及偏移量

Android 自定义布局实现气泡弹窗,可控制气泡尖角方向及偏移量。效果图实现首先自定义一个气泡布局。/*** 气泡布局*/public class BubbleRelativeLayout extends RelativeLayout {/*** 气泡尖角方向*/public enum BubbleLegOrientation {TOP, LEFT, RIGHT, BOTTOM, NONE}pu...

weixin_32375369的博客 1107

C语言试题一之计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和

1、题目 计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和 2、源代码实现 #include <stdio.h> #include <math.h> double fun1(int n) { if (n <= 0) return 0; int i; double sum = 0.0; for (i = 1; i <= n;...

码莎拉蒂 1万+

Android实现点击按钮弹出气泡(附带源码)

Android实现点击按钮弹出气泡(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1641

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

在Android中实现一个简易的聊天气泡效果(附示例代码)

你可以使用或来布局聊天气泡。以下是一个简单的</

m0_63331248的博客 1403

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android界面篇【实现气泡短信样式】

今晚有点时间把断了很长时间的UI开发补一下,这次实现的是像handcent sms或者chomp sms那样的气泡短信样式,也是iphone上的气泡聊天模式。实现这种效果的重点是ListView的divider和listSelector。先看一下效果图。   给代码: (1)listview:     android:orientation="vertical"

zhixiang2010的专栏 2171

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: Android 中的 Canvas API
下一篇: 探索 Android Q 中的边对边功能
不秃头de程序猿
博客等级 码龄5年 4089粉丝 1478原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值