web-dev-qa-db-fra.com

Grand fond d'icône de notification

Depuis Android 5.0, les grandes icônes dans les notifications ont une couleur de fond:

Lollipop-notification

Pour les petites icônes, il s'agit de la couleur d'accentuation de la notification (Notification.Builder.setColor(int)). Comment puis-je le configurer pour une grande icône? Cela fait-il partie de l'image réelle? Si c'est le cas, quel devrait être le rayon du cercle?

25
Andrii Chernenko

Oui, la couleur de la grande icône fait partie de l'image réelle. Les dimensions de la grande icône sur Lollipop sont 40x40dp avec une vue optique remplissant l’ensemble de l’image. Vous devez donc créer un actif de 40x40dp avec un cercle de 20dp de rayon . Vous pouvez définir la grande icône de la notification comme suit:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
    .setSmallIcon(R.drawable.notification_small_icon)
    .setLargeIcon(notificationLargeIconBitmap)
    .setContentTitle("Notification")
    .setContentText("Content text")
    .setColor(context.getResources().getColor(R.color.accent_color));

Si vous avez besoin que la grande icône provienne d'une ressource exploitable, vous pouvez obtenir une instance Bitmap comme celle-ci:

Bitmap notificationLargeIconBitmap = BitmapFactory.decodeResource(
    context.getResources(), 
    R.drawable.notification_large_icon);

Si vous souhaitez que votre notification soit bien affichée avec les versions précédentes d'Android ( KitKat et versions ultérieures ), vous devez disposer d'une version carrée de votre grande icône de dimension 64x64dp

32
alxscms

Une grande icône doit toujours avoir un arrière-plan (avatar). Il est également utilisé sur les périphériques d'usure comme arrière-plan d'une notification. Il est affiché sur différentes couleurs d'arrière-plan, il devrait donc s'agir d'une image non transparente.

0
notz