Android 通知大图标覆盖空白小图标

Android notification large icon overlaid with blank small icon

顶部通知栏的小图标效果很好。大图标也会出现。但是,大图标的右下角被小图标覆盖,显示为白色。有人知道吗?谢谢。

![private void showNotification(Context context, Intent intent) {
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
new Intent(context, MainActivity.class), 0);

    String title = intent.getExtras().getString("nTitle");
    String message = intent.getExtras().getString("nMessage");

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
            context);

    Notification notification = mBuilder.setContentIntent(contentIntent)
            .setSmallIcon(R.drawable.android)
            .setColor(2)
            .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.fuckya))
            .setWhen(0)
            .setAutoCancel(true)
            .setContentTitle(title)
            .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
            .setContentText(message).build();

    mBuilder.setContentIntent(contentIntent);
    mBuilder.setDefaults(Notification.DEFAULT_SOUND);
    mBuilder.setAutoCancel(true);
    NotificationManager mNotificationManager =
            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(1, mBuilder.build());

}][1]

根据 setColor() documentation

Parameters

argb -The accent color to use

您传递的 2 不是有效的 ARGB 颜色,因此您的小图标的背景颜色无法正确显示。相反,请选择有效的 ARGB 颜色。

如果您有想要使用的颜色资源,可以使用诸如

之类的代码
.setColor(context.getResources().getColor(R.color.notification_color))

此外,请注意 Android 5.0 changes 状态:

Update or remove assets that involve color. 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.

您的小图标应该是完全白色和透明的 - 您可以使用 Notification Icon Generator 等工具生成合适的图标。