2017-06-28 3 views
3

Je définis une icône en utilisant un .png en fond transparent blanc. Cela fonctionne correctement lors de l'affichage sur l'écran de verrouillage et dans la zone de notification.Comment utiliser une icône de notification différente dans Android pour la zone de notification et le tiroir de notification

L'icône est mis en surbrillance en jaune: enter image description here

Maintenant, dans le tiroir de notification, l'icône apparaît en blanc aussi (est la même icône). Mais je voudrais utiliser une autre icône, dans ce cas, le camion en bleu. En ce moment, je mets la couleur au bleu en utilisant Notification.Builder.SetColor(), et le titre apparaît dans cette couleur.

Vous pouvez voir comment l'icône Gmail s'affiche en blanc dans la barre d'état et en rouge dans le tiroir.

Il s'agit du code réel pour générer la notification. code est pour Xamarin.Droid

var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager; 

Notification.Builder builder = new Notification.Builder(this) 
       .SetContentTitle(title) 
       .SetContentText(desc) 
       .SetSmallIcon(Routes.Droid.Resource.Drawable.truck) 
       .SetAutoCancel(true); 
builder.SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.truckColor)); 
builder.SetColor(Android.Graphics.Color.Rgb(33,150,243)); 

var notification = new Notification.BigTextStyle(builder).BigText(desc).Build(); 

notificationManager.Notify(-1, notification); 

Comment puis-je régler la couleur de l'icône dans le tiroir de notification, ou utiliser des icônes différentes?

L'objectif est d'afficher l'icône en blanc dans la zone de notification et en bleu dans le tiroir de notification.

Répondre

1

La couleur de l'icône est définie automatiquement par Android 7.0 (API 24).

Pour que l'icône soit colorée par Android, vous devez utiliser des ressources spécifiques pour les différentes densités et les ajouter dans les répertoires correspondants.

Dans mon application, j'ai ajouté les icônes à

/Ressources/drawable-hdpi

/Ressources/drawable-xhdpi

/Ressources/drawable-xxhdpi

Si vous, comme dans mon cas, avoir une image pour l'icône, vous pouvez créer les nouvelles ressources en utilisant cet outil: https://romannurik.github.io/AndroidAssetStudio/icons-notification.html

Le code source ne fait pas ch ange, mais lors de la définition des icônes pour les différentes densités, l'icône est colorée dans le tiroir et blanche dans la zone de notification.

Auparavant, j'utilisais simplement une icône .png par défaut dans le dossier Resources/drawable. Ceci affiche l'icône, mais elle apparaît toujours dans la même couleur.