J'ai mis à niveau Android 6.0 et mon application ont un problème.
lorsque la couleur d'arrière-plan de la barre d'état n'est pas blanche, l'icône de notification est bonne. (l'icône de notification png est en blanc et alpha uniquement)
mais si certaines applications changent la couleur d'arrière-plan en blanc, mon icône de notification n'est pas inversée en noir.
Comment inverser l'icône de notification blanche en noir lorsque la couleur d'arrière-plan de la barre d'état est définie en blanc par une autre application? (Je ne dis pas comment utiliser l'icône de couleur.)
l'image ci-dessous montre un problème.
Code de génération de notification
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>
** Trouvé une solution **
J'ai ajouté des icônes de notification au répertoire drawable non drawable- * dpi. Maintenant ça marche.
Il est tard pour répondre, mais pour ceux qui ont le même problème,
J'ai aussi eu ce problème et j'ai trouvé que le problème venait de l'icône graphique. Vous pouvez résoudre le problème en utilisant cet outil en ligne. Ouvrez ce lien:
choisissez votre image (de grande dimension), téléchargez la ressource et copiez-la dans votre projet.
et enfin définir l'icône de notification à l'aide de .setSmallIcon(R.drawable.ICON_NEW_NAME)
j'espère que cela t'aides
Je pense que le problème réside dans l'appareil Android 5.0 ou supérieur.
https://developer.Android.com/design/patterns/notifications.html
https://developer.Android.com/about/versions/Android-5.0-changes.html
Voici une solution:
Notification notification = new Notification.Builder(context)
.setAutoCancel(true)
.setContentTitle("My notification")
.setContentText("Look, white in Lollipop, else color!")
.setSmallIcon(getNotificationIcon())
.build();
return notification;
et méthode getNotificationIcon()
:
private int getNotificationIcon() {
boolean useWhiteIcon = (Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.Lollipop);
return useWhiteIcon ? R.drawable.icon_black : R.drawable.ic_nomarl;
}