2017-03-29 2 views
4

Ich verwende das folgende Snippet, um Benachrichtigungen in meiner Android App zu generieren.android 7.0 Benachrichtigungssymbol erscheint weißes Quadrat

private void sendNotification(String contentText, String message) { 

    Intent resultIntent = new Intent(this, MainActivity.class); 
    resultIntent.putExtra("clear","clear"); 
    resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
    Intent.FLAG_ACTIVITY_CLEAR_TASK); 

    PendingIntent piResult = PendingIntent.getActivity(this, 0, resultIntent,0); 

    NotificationCompat.Builder builder=new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.icon) 
      .setColor(ContextCompat.getColor(getApplicationContext(),R.color.red)) 
      .setContentTitle("title") 
      .setContentText(message) 
      .setAutoCancel(true) 
      .setLargeIcon(BitmapFactory.decodeResource(getResources() 
      ,R.drawable.notification)) 
      .setContentIntent(piResult); 

    NotificationCompat.InboxStyle notification = new NotificationCompat.InboxStyle(builder); 

    int i; 
    for(i=0; i<messageList.size();i++){ 
     notification.addLine(messageList.get(i)); 
    } 
    notification.setBigContentTitle("title"); 
    notification.setSummaryText(contentText); 

    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(NOTIFICATION_ID,notification.build()); 
} 

Es funktioniert in android 5 und 6, aber für Android Nougat ist es nicht

Antwort

2

Von Android-Version lollpop arbeiten weiter, sie haben die Änderungen für die Notifikationen. Wenn Sie das kleine Symbol angeben, sollte es eine bestimmte Größe haben, wie in this link erwähnt.

Die wichtige Sache ist das Bild sollte transparent sein und enthält nur weiße Farbe.

Sie this question überprüfen die Antwort

+0

Das Bild ist nur transparent –

+1

@SureshKumar Ihr Bild hat wahrscheinlich einen transparenten Hintergrund, aber das Symbol ist ein Quadrat, so dass Sie ein quadratisches weißes Bild erhalten. Ihr gesamtes Bild mit Ausnahme der transparenten Teile wird in Weiß konvertiert. –

+0

@ AlbertoMéndez Danke, ich werde das überprüfen –

1

Nach diesem Blog here

Es sagt zu bekommen, dass

Sie werden bemerken, dass die Symbole in den neuen Meldungen nicht vorhanden sind; stattdessen wird mehr Platz für die Etiketten selbst in dem beschränkten Raum des Benachrichtigungsschirms bereitgestellt. Die Benachrichtigungssymbole sind jedoch weiterhin erforderlich und werden weiterhin in älteren Versionen von Android und auf Geräten wie Android Wear verwendet.

Wenn Sie Ihre Benachrichtigung mit NotificationCompat.Builder und den dort verfügbaren Standardstilen erstellt haben, erhalten Sie standardmäßig das neue Erscheinungsbild, ohne dass Codeänderungen erforderlich sind.

+0

ja, aber es ist seltsam, dass die Benachrichtigung nicht mit dem Symbol obwohl:/ –

+0

tatsächlich ist es ihre Neugestaltung der Benachrichtigung, die direkte Antwort und so weiter erlaubt. –

0

die docs vom Android API Folgende:

Statusleiste Symbole bestehen lediglich aus weißen Pixel auf einem transparenten Hintergrund, mit Alpha-Blending für glatte Kanten verwendet und interne Textur gegebenenfalls.

Ihr gesamtes Bild, aber die transparenten Teile werden in Weiß konvertiert (ursprünglich weiß oder mit Farben).

Eine Lösung besteht darin, ein Silhouetten-Symbol mit Farbe zu erstellen. Auf diese Weise können Sie dasselbe Bild in allen Android-APIs verwenden. Ein Beispiel könnte dieses Symbol sein:

White image on a transparent backdrop

In niedrigeren Versionen von Android Sie das schwarze Gesicht sehen würde, in den letzten Versionen, die Sie das gleiche Gesicht sehen, aber mit weißer Farbe. Das liegt an den transparenten Teilen (es scheint SO entfernt die Transparenz, Sie können das Original von here bekommen) des Bildes.

0

Gibt es trotzdem eine Rückkehr zum transparenten Hintergrund für Benachrichtigungen? Eines meiner Lieblingsfeatures der vorherigen Version war nicht, dass ich durch hellweiße Benachrichtigungen geblendet wurde, als ich mein Handy einschaltete.

Verwandte Themen