Notification icon turns white in Marshmallow

2019-02-20 20:38发布

I am trying to use a colorful image with transparent background as notification icon. This works fine in older android versions but when i tested it on Marshmallow(6.0), it turns white. I tried to find the solution on google and tried them but no success. Here is my code:

NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
Intent notificationIntent = new Intent(context,Activity_Notification.class);
notificationIntent.putExtra("MSG", message);
if (notificationIntent != null){
int number = createRandomInteger();
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent;
intent = PendingIntent.getActivity(context, number,
notificationIntent, Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notificationManager.notify(number, notification);
}

Please help me to get rid of this problem.

2条回答
家丑人穷心不美
2楼-- · 2019-02-20 21:25

As per the Android 5.0 behavior changes:

The system ignores all non-alpha channels in action icons and in the main notification icon. You should assume that these icons will be alpha-only. The system draws notification icons in white and action icons in dark gray.

You can use setColor() to change the background color visible on the notification, but the small icon will always only be alpha-only i.e., colored a single color by the system.

查看更多
家丑人穷心不美
3楼-- · 2019-02-20 21:45

check this link, above Lollipop notification icon can only be white or transparent

查看更多
登录 后发表回答