安卓彩色通知图标

我正在开发一个应用,在其中为用户创建通知。我希望图标在状态栏中显示为白色,但在下拉通知菜单中显示时显示为蓝色。以下是Google Store应用程序正在执行的相同操作的示例。

状态栏中的白色通知:

enter image description here

下拉菜单中的彩色通知:

enter image description here

如何复制此内容?我必须设置哪些属性?

编辑:这是我当前的代码 - 我使图像全部为白色,背景透明,因此它在状态栏中看起来很好,但在通知丢弃中,图像仍然是相同的白色:

private NotificationCompat.Builder getNotificationBuilder() {
        return new NotificationCompat.Builder(mainActivity)
                .setDeleteIntent(deletedPendingIntent)
                .setContentIntent(startChatPendingIntent)
                .setAutoCancel(true)
                .setSmallIcon(R.drawable.skylight_notification)
                .setColor(ContextCompat.getColor(mainActivity, R.color.colorPrimary))
                .setContentTitle(mainActivity.getString(R.string.notification_title))
                .setContentText(mainActivity.getString(R.string.notification_prompt));
    }

答案 1

我在这里找到了问题的答案:https://stackoverflow.com/a/44950197/4394594

我不完全知道问题是什么,但是通过将我用于图标的巨大png放入此工具 https://romannurik.github.io/AndroidAssetStudio/icons-notification.html#source.type=image&source.space.trim=1&source.space.pad=0&name=ic_skylight_notification,并将其提供的生成图标放入我的mipmap文件夹中,我能够使属性正常工作。setColor(...)


答案 2

对于从控制台发送的 firebase nofitication,您只需在清单中添加以下内容:

    <meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/white_logo" />

    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/custom_color" />

其中white_logo是你的应用白色徽标,custom_color是你希望对图标和文本着色的颜色。

更多细节请点击这里: https://firebase.google.com/docs/cloud-messaging/android/client