此问题之前已被问过,但尚未得到妥善解答。我知道这是可能的,但我们感到有点困惑。
我们需要在收到推送通知时在状态栏中显示自定义/动态图像。我们关注下拉中看到的较大图像,而不是实际状态栏中的小图像。因为它们需要是动态的,所以图像无法与apk一起打包,我们正在尝试定位Android 2.2
我们想要实现的目标类似于Facebook如何显示在通知栏中发起通知的用户的个人资料图片。它也类似于whatsApp在新的推送通知到达时在通知栏中显示组图像的方式。
从我们读过的内容来看,这只能在Android 3 +,sdk 11中实现。但这不可能是真的。
我们在运行2.3.4的Android手机上安装了Facebook和WhatsApp,果然,通知栏中会显示自定义图标。
那么秘密是什么?他们是如何做到的呢?我们怎么做呢?
答案 0 :(得分:2)
所以您要做的是在通知构建器中设置setLargeIcon(Bitmap icon)
。这适用于APi 11及以上(蜂窝状)。兼容包v9中的通知构建器可以为您设置它,但它只会出现在api 11及更高版本上。
要在2.3及更低版本中实现相同的效果,您必须创建自定义通知布局,并在Notification.Builder中使用setContent(RemoteViews views)
进行设置以生成自定义布局。这可以通过左侧的大图标来模仿> API 11样式。
创建自定义布局非常棘手,必须考虑很多事情,例如显示通知的其他设备上的可用屏幕尺寸,以及主题文本颜色(特别是作为通知用于白色bg上的暗文本,现在它们是黑暗的bg上的浅色文字)有很多指南,甚至可以帮助你的SO帖子(such as this one)
关于获取动态图像,当手机收到消息(推送通知或其他)并且您的应用程序用于构建通知时,您可以在构建通知之前执行小型http请求以提取动态图像。这会延迟发布几秒钟,但这并不重要。然后,您可以获得生成的图像并在通知中使用它。可以通过发送一些数据来选择特定图像(im假设推送通知),该数据标识可以附加到应用程序的通知构建部分中已经存在的URL的哪些照片(例如网址或ID)。 / p>
希望这会有所帮助,任何后续行动都会问:)
答案 1 :(得分:-1)
您不能使用除预先包装的drawable之外的任何内容作为状态栏上显示的通知图标。不,你没有看到你在FB应用程序中寻找的任何东西(或者你谈到当你把它拉下来时看到的通知区域)。