大通知图标背景

Posted

技术标签:

【中文标题】大通知图标背景【英文标题】:Large notification icon background 【发布时间】:2014-11-17 13:29:57 【问题描述】:

由于 android 5.0 通知中的大图标具有彩色背景:

对于小图标,它是通知的强调色(Notification.Builder.setColor(int))。如何设置大图标?它是实际图像的一部分吗?如果是,圆的半径应该是多少?

【问题讨论】:

【参考方案1】:

是的,大图标的颜色是实际图像的一部分。棒棒糖上大图标的尺寸为40x40dp,整个图像充满光学视图。因此,您应该创建一个 40x40dp 的资产,其圆的半径为 20dp。 您可以按如下方式设置通知的大图标:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
    .setSmallIcon(R.drawable.notification_small_icon)
    .setLargeIcon(notificationLargeIconBitmap)
    .setContentTitle("Notification")
    .setContentText("Content text")
    .setColor(context.getResources().getColor(R.color.accent_color));

如果您需要来自可绘制资源的大图标,您可以像这样获得Bitmap 实例:

Bitmap notificationLargeIconBitmap = BitmapFactory.decodeResource(
    context.getResources(), 
    R.drawable.notification_large_icon);

如果您希望您的通知能够与之前版本的 android(kitkat 及以下)一起很好地显示,您应该使用尺寸为 64x64dp 的方形版本的大图标强>。

【讨论】:

大图标的尺寸应该是 64x64dp,而不是 40x40dp。在 Android SDK 中检查过。 kitkat 及以下大图标的尺寸实际上是 64x64dp,但在棒棒糖上是 40x40dp。我无法检索我找到信息的来源。 不,你对棒棒糖有误。我测试了它,发现如果大图标的尺寸为 40x40dp,图标会变得模糊。 Android 21 SDK 来源还指出尺寸应为 64x64dp。你可以自己检查:) 这很奇怪,因为通知上显示的实际图像肯定是40x40dp。这是否意味着 android 将其放大到 64x64dp 然后缩小到 40x40dp?多么奇怪的过程。我需要一些时间来检查一下。 我必须使用 96dp 正方形才能在我的 Lollipop 设备上获得不模糊的图像。【参考方案2】:

您可以使用带有透明背景的图标作为通知的大图标。您还可以为大图标和小图标着色。 如前所述,使用setColor() 为小图标着色。 对于大图标,请使用此功能:

fun Bitmap.tint(color: Int): Bitmap =
    Bitmap.createBitmap(this.width, this.height, Bitmap.Config.ARGB_8888).also  outBmp ->
        Canvas(outBmp).drawBitmap(
            this, 0f, 0f,
            Paint().apply 
                this.colorFilter = PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN)
            
        )
    

所以您的代码将如下所示:

    NotificationCompat.Builder(context)
        .setColor(yourColor)
        .setLargeIcon(largeBitmap.tint(yourColor))
        .setSmallIcon(R.drawable.small_icon)

您可以在 Android 5.0 上获得以下内容: 在 Android 10 上:

【讨论】:

【参考方案3】:

大图标应始终有背景(即头像)。它还用于可穿戴设备作为通知的背景。它以不同的背景颜色显示,因此应该是不透明的图片。

【讨论】:

不,不应该。如果您需要可穿戴设备的平方资源,您可以为不同的设备拥有同一资源的多个版本。 当然可以,但它的开销很大。而且,如果您有动态图标,那么当它以圆角蒙版显示时,额外圆角它的开销会更大。保持简单。

以上是关于大通知图标背景的主要内容,如果未能解决你的问题,请参考以下文章

创建自定义大通知

Apple Watch 通知:点击长通知中的图标时禁用打开应用程序

如何使用CSS设置标签的背景小图标 简单

小程序添加图标和logo图标 设置背景颜色

DUILIB库怎么实现背景透明,文字和图标不透明

怎么改变苹果手机下面4个图标的背景的颜色?