2014-11-17 26 views
25

Dal Android 5.0 icone grandi nelle notifiche hanno colore di sfondo:Grande icona di notifica sfondo

lollipop-notification

Per piccola icona, è il colore accento di notifica (Notification.Builder.setColor(int)). Come faccio a impostarlo per l'icona grande? Fa parte dell'immagine reale? Se lo è, quale dovrebbe essere il raggio del cerchio?

risposta

32

Sì, il colore dell'icona grande fa parte dell'immagine reale. Le dimensioni dell'icona grande sul lecca-lecca sono 40x40dp con una vista ottica che riempie l'intera immagine. Quindi dovresti creare un asset di 40x40dp con un raggio di 20dp. È possibile impostare grande icona della notifica come segue:

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)); 

Se è necessario l'icona grande per essere da una risorsa drawable si può ottenere un'istanza Bitmap come questo:

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

Se volete che il vostro la notifica deve essere visualizzata correttamente con le versioni precedenti di Android (kitkat e inferiore a), è necessario disporre di una versione quadrata dell'icona grande con una dimensione di 64x64dp.

+0

Le dimensioni dell'icona grande dovrebbero essere 64x64dp, non 40x40dp. Controllato in Android SDK. – igla

+0

La dimensione dell'icona grande è in realtà 64x64dp su kitkat e sotto, ma su lecca-lecca è 40x40dp. Non riesco a recuperare la fonte in cui ho trovato l'informazione però. – alxscms

+0

No, ti sbagli con Lollipop. L'ho provato e ho scoperto che l'icona è sfocata se le dimensioni dell'icona grande sono 40x40dp. Le sorgenti di Android 21 SDK sottolineano anche il fatto che la dimensione dovrebbe essere 64x64dp. Puoi controllare tu stesso :) – igla

0

Un'icona grande deve sempre avere uno sfondo (ad esempio, avatar). Viene anche utilizzato sui dispositivi di usura come sfondo per una notifica. Viene visualizzato su diversi colori di sfondo, pertanto dovrebbe essere un'immagine non trasparente.

+0

No, non dovrebbe. Se hai bisogno di una risorsa al quadrato per i dispositivi indossabili, puoi avere più versioni della stessa risorsa per diversi dispositivi. – alxscms

+0

Certo che puoi, ma è molto spese generali per niente. E se hai un'icona dinamica, è ancora più generosa per arrotondarla quando viene visualizzata con un mascherino arrotondato. Mantieni le cose semplici. – notz

Problemi correlati