2016-05-04 50 views
5

Ho aggiornato Android 6.0 e la mia app ha problemi.Il colore dell'icona di notifica Android non viene modificato quando il colore di sfondo è bianco

quando il colore di sfondo della barra di stato non è bianco, l'icona di notifica è buona. (l'icona di notifica png ha solo bianco e alpha)

ma se alcune app cambiano il colore di sfondo in bianco, l'icona di notifica non viene invertita in nero.

Come è possibile invertire l'icona di notifica in bianco su nero quando il colore di sfondo della barra di stato è impostato in bianco da un'altra app? (Non sto dicendo come posso usare l'icona a colori.)

sotto l'immagine mostra un problema.

normal status

when changed background color to white, my icon is not changed to black only

  • Notifica di dam

    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()); 
    
  • valori-V23/styles.xml

    <style name="AppTheme" parent="android:Theme.Material.NoActionBar">    
    </style> 
    

** Trovato una soluzione **

Ho aggiunto le icone di notifica alla directory disegnabile non disegnabile- * dpi. Ora sta funzionando.

+0

Dai un'occhiata a questo [post] (http://stackoverflow.com/questions/28387602/notification-bar-icon-turns-white- in-android-5-lecca). Leggi anche questa [documentazione] (http://developer.android.com/reference/android/app/Notification.Builder.html#setColor%28int%29). Spero che tu possa avere un indizio. Saluti ....:) – verbose

+0

@verbose Ho già letto ma controllerò di nuovo. grazie –

+0

Ho provato la tua soluzione e non ha funzionato per me. –

risposta

0

Penso che il problema si trovi nel dispositivo Android 5.0 o superiore.

https://developer.android.com/design/patterns/notifications.html
https://developer.android.com/about/versions/android-5.0-changes.html

Ecco una soluzione:

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

return notification; 

e il metodo 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; 
} 
+0

grazie ma non funziona. Ho trovato LNotifications da un campione Android e non ha l'immagine icona nera ma dal bianco al nero (grigio scuro) quando altre app sono in esecuzione con la barra di stato bianca. e non ho trovato alcun tipo di codice speciale di modifica del colore da LNotifications. –

2

So che la sua tardi per rispondere, ma per gli altri che hanno lo stesso problema ,

Ho avuto questo problema e ho scoperto che il problema è con l'icona grafica. È possibile risolvere il problema utilizzando questo strumento online. aprire questo link:

https://romannurik.github.io/AndroidAssetStudio/icons-notification.html#source.type=image&source.space.trim=1&source.space.pad=0&name=ic_stat_call_white

quindi selezionare l'immagine (con grandi dimensioni), quindi scaricare la risorsa e copiarli al vostro progetto.

quindi impostare l'icona di notifica utilizzando .setSmallIcon(R.drawable.ICON_NEW_NAME)

speranza questo aiuto

+0

Grazie, questo ha risolto il mio problema – Oblivionkey3