J'ai essayé de faire la petite icône exactement 16x16, en échelle de gris, rien que du gris et du blanc (la couleur grise étant la valeur hex 616161), pour créer une silhouette de l'icône de mon application.

Pourtant, peu importe ce qu'il apparaît juste comme un carré blanc / gris dans les notifications. Qu'est-ce que je fais mal?

(Mon min api est de 21, en supposant qu'il soit pertinent)

25
user8367195 26 juil. 2017 à 09:03

2 réponses

Pour la notification, vous devez utiliser différentes icônes pour différentes versions d'Android:

Notification notification = new Notification.Builder(context)
                .setAutoCancel(true)
                .setContentTitle("My notification")
                .setContentText("Look, white in Lollipop, else color!")
                .setSmallIcon(getNotificationIcon())
                .build();
    return notification;

Obtenir l'icône de notification sur la base de la version

private int getNotificationIcon() {
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
    return useWhiteIcon ? R.drawable.icon_silhouette : R.drawable.ic_launcher;
}
8
Aj 27 26 juil. 2017 à 06:06

Outre de nouvelles fonctionnalités et capacités, Android 5.0 inclut une variété de modifications du système et de comportement des API. PL. passez en revue les changements de comportement de notification.

Les notifications sont dessinées avec du texte sombre sur des arrière-plans blancs (ou très clairs) pour correspondre aux nouveaux widgets de conception matérielle. Assurez-vous que toutes vos notifications semblent correctes avec le nouveau jeu de couleurs. Si vos notifications semblent incorrectes, corrigez-les:

  • Utilisez setColor() pour définir une couleur d'accentuation dans un cercle derrière l'image de votre icône.
  • Mettez à jour ou supprimez les éléments qui impliquent la couleur. Le système ignore tous les canaux non alpha dans les icônes d'action et dans l'icône de notification principale. Vous devez supposer que ces icônes seront uniquement alpha. Le système dessine des icônes de notification en blanc et des icônes d'action en gris foncé.

En gros, vous devez utiliser les icônes de silhouette comme icône de notification pour le niveau d'API 21+

7
Anoop M 26 juil. 2017 à 06:20