通知 - 根据活动主题更改通知图标颜色

时间:2018-01-25 14:01:36

标签: android notifications

我正在尝试开发一个可以通知人们某些行为的应用程序......

问题是我想创建一个smallIcon drawable,它会根据状态栏颜色或活动主题动态改变颜色

enter image description here

我有一个透明背景的白色可绘图标,并尝试了这种方式,但图标颜色始终为白色。

  NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, "notification")
            .setSmallIcon(R.drawable.white_logo)
            .setContent(contentView)
            .setOngoing(true)
            .setContentIntent(contentIntent);

1 个答案:

答案 0 :(得分:0)

您不能将图标上的颜色更改为Android 5.x及更高版本,但您可以在向下滑动时更改图标的颜色

evalin

您的输出将是:

enter image description here

enter image description here

此外,如果您将gradle或manifest文件中的targetSdkVersion更改为21以下,则通知图标将会变得丰富多彩。 (从sdk级别21开始,通知图标上有一个白色过滤器。)(不推荐!)

private void showNotification(Context context) {
    Log.d(MainActivity.APP_TAG, "Displaying Notification");
    Intent activityIntent = new Intent(context, MainActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
    mBuilder.setSmallIcon(R.drawable.ic_notification);
    mBuilder.setColor(Color.GREEN);
    mBuilder.setContentIntent(pendingIntent);
    mBuilder.setContentTitle("EarthQuakeAlert");
    mBuilder.setContentText("It's been a while you have checked out earthquake data!");
    mBuilder.setDefaults(Notification.DEFAULT_SOUND);
    mBuilder.setAutoCancel(true);
    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(1, mBuilder.build());
}

清单

android {
    defaultConfig {
        targetSdkVersion 20
    }
}

你可以看到这个。但不推荐使用,因为在较高的api中,您会看到一个空白框,并且不会显示通知。

enter image description here