当背景颜色为白色时,Android 通知图标颜色不会改变

标签 android colors notifications icons

我升级了 android 6.0,我的应用程序有问题。

当状态栏背景颜色不是白色时,通知图标是好的。 (通知图标 png 只有白色和 alpha)

但如果某些应用程序将背景颜色更改为白色,我的通知图标不会反转为黑色。

当其他应用程序将状态栏背景颜色设置为白色时,如何将白色通知图标反转为黑色? (我不是说如何使用彩色图标。)

下图显示了一个问题。

正常状态 normal status image

当背景色变成白色时,我的图标并没有变成黑色 with white background color image

  • 通知构建代码

      Notification.Builder mBuilder =
              new Notification.Builder(context)
                      .setSmallIcon(R.drawable.ic_notifications_none)
                      .setPriority(priority2)
                      .setOngoing(true);
    
      mBuilder.setContent(generateMessageView(message));
    
      Intent notificationIntent = new Intent(context, MainActivity.class);
      notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP 
                                | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    
      PendingIntent intent = PendingIntent.getActivity(context, 0,
              notificationIntent, 0);
      NotificationManager mNotificationManager =
              (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
      mBuilder.setContentIntent(intent);
      mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
    
  • values-v23/styles.xml

      <style name="AppTheme" parent="android:Theme.Material.NoActionBar">            
      </style>
    

找到解决方案

我将通知图标添加到 drawable 目录而不是 drawable-*dpi。现在可以使用了。

最佳答案

现在回答晚了,但对于其他有同样问题的人,

我也有这个问题,我发现问题出在图形图标上。 您可以使用此在线工具解决问题。 打开此链接:

https://romannurik.github.io/AndroidAssetStudio/icons-notification.html#source.type=image&source.space.trim=1&source.space.pad=0&name=ic_stat_call_white

选择你的图片(大尺寸),下载资源并将它们复制到你的项目中。

最后使用 .setSmallIcon(R.drawable.ICON_NEW_NAME) 设置通知图标

希望对你有帮助

关于当背景颜色为白色时,Android 通知图标颜色不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37017672/

相关文章:

java - 构建依赖于 Android 项目 Gradle 的 Java 库

Android:电子邮件和短信的独立 Intent

android - FCM token 未在某些 Android 设备中生成

android - 单击通知时检查应用程序是否正在运行的最佳实践

azure - 如何获取有关新添加的主题或队列的通知?

java - 如何在java swing中使用socket显示通知

java - 无法解析 JNIfunction : Android ndk

r - 在图像 {graphics} 中添加颜色图例

python - 更改 ttk 小部件文本颜色

objective-c - 如何对图像中的颜色进行采样