2015-11-25 5 views
5

Ich mache eine Anwendung, die ich Daten von Parse erhalte und diese Daten an Notification übertrage, um sie zu generieren und dem Benutzer zu zeigen.Android Notification zeigt kein Farbsymbol in Marshmallow an

aber aus irgendeinem Grunde kann ich nicht richtig Farbige Icon in Eibisch

In jeder anderen Android Version seine Arbeit völlig in Ordnung zeigen, aber in Eibisch sein gruseligen weißen Symbol nicht unbedingt, die ich wähle.

Hier ist mein Code der Benachrichtigung.

Bitte helfen Sie mir, oder sagen Sie mir einen anderen Weg, wie Sie dieses Problem loswerden.

Antwort

19

Erste: Es ist nicht von Marshmallow, Benachrichtigung Symbol begann WHITE von Lollipop selbst zu drehen.

Checkout http://developer.android.com/design/style/iconography.html Sie sehen, dass der weiße Stil ist, wie Benachrichtigungen in Android Lollipop angezeigt werden sollen.

In Android Lollipop, Google empfiehlt Ihnen, eine Farbe zu verwenden, die sich hinter dem (weiß) Symbol im Infobereich angezeigt wird - https://developer.android.com/about/versions/android-5.0-changes.html

Zweitens: Lösung ist LargeIcon auf Notification Builder Einstellung

Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 

NotificationCompat.Builder builder = new NotificationCompat.Builder(context) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setLargeIcon(largeIcon) 
       .setContentText(data) 
       .setContentTitle("Notification from Parse") 
       .setContentIntent(pendingIntent); 

dann wird deine Anfrage wie folgt aussehen:

setLargeIcon

Sie können die Farbe auch auf den Hintergrund des Benachrichtigungssymbols setzen, indem Sie .setColor() verwenden.

+0

Sie sind Awesome seine Arbeit –

+0

Aber es gibt auch das kleine Symbol in der unteren rechten ist dort sowieso, um das zu entfernen –

+2

Nein, Sie können nicht, weil dieses Symbol in Ihrer Benachrichtigung angezeigt wird, wenn Ihr Telefon gesperrt ist und Benachrichtigung erscheint. –