web-dev-qa-db-ja.com

Android LollipopのNotification.Builder.setSmallIconで設定されたアイコンが白い四角として表示されるのはなぜですか?

私はこのコードを持っています:

Notification notif;

// Build notification
Notification.Builder notifBuilder = new Notification.Builder(context);
notifBuilder.setContentIntent(pendingIntent);
notifBuilder.setContentTitle(title);
notifBuilder.setSmallIcon(icon_resId);
notifBuilder.setContentText(ne.getCaption());
notifBuilder.setDefaults(Notification.DEFAULT_ALL);
notifBuilder.setAutoCancel(autocancel);
notifBuilder.setWhen(System.currentTimeMillis());
notif = notifBuilder.build();

Android 4.4では正常に動作します。

ただし、Android 5.0では、ステータスバーに表示されるアイコンは白い四角です。デバイスがロックされているときに表示される新しい「通知本文」に表示されるアイコンは正しいです。

http://developer.Android.com/reference/Android/app/Notification.Builder.html では、APIレベル21の通知アイコンについて新しいことは見当たりません

61
Borja

アイコンサイズを16x16ピクセルに変更し、白色のみを使用することを解決しました

29
Borja

ドキュメントをご覧ください: http://developer.Android.com/design/style/iconography.html

「通知アイコンは完全に白である必要があります。また、システムがアイコンを縮小または暗くすることもあります。」

31
porlicus

複製: 通知バーのアイコンはAndroid 5 Lollipopで白に変わります

概要:

Android 5アップデート:https://developer.Android.com/about/versions/Android-5.0-changes.html 通知->材料設計スタイル

色を含むアセットを更新または削除します。システムは、アクションアイコンとメイン通知アイコンのすべての非アルファチャネルを無視します。これらのアイコンはアルファのみであると想定する必要があります。システムは通知アイコンを白で、アクションアイコンを濃い灰色で描画します。

を使用して小さなアイコンの背景色を設定することができます(デフォルトは灰色です):

Notification.Builder#setColor(int)
4
Tobliug

Android 5.0 NotificationsのAndroid Developersサイトの動作の変更に記載されているとおり:

通知は、新しいマテリアルデザインウィジェットに合わせて、白い(または非常に明るい)背景の上に暗いテキストで描画されます。すべての通知が新しい配色で正しく表示されることを確認してください。通知が間違っている場合は、修正してください。

SetColor()を使用して、アイコン画像の後ろの円にアクセントカラーを設定します。色を含むアセットを更新または削除します。システムは、アクションアイコンとメイン通知アイコンのすべての非アルファチャネルを無視します。これらのアイコンはアルファのみであると想定する必要があります。システムは通知アイコンを白で、アクションアイコンを濃い灰色で描画します。

http://developer.Android.com/about/versions/Android-5.0-changes.html

4
CoDeSigns

これをマニフェストに追加します-

 <meta-data Android:name="com.google.firebase.messaging.default_notification_icon"
    Android:resource="@drawable/ic_notification" />
2
Anirban

Android 5.0では、5.0 Lollipopのため、ステータスバーに表示されるアイコンは白い四角です(「通知アイコンは完全に白でなければなりません」

このタイプのアイコンは、素材アイコンで簡単に見つけることができます。訪問: https://material.io/icons/

Googleでは、setColor()メソッドを使用して、白い通知アイコンの背後に表示されるカスタム色を使用することも推奨しています。

詳細については、以下をご覧ください。 https://developer.Android.com/about/versions/Android-5.0-changes.html

0
Aashish

まだこれを見ている人は、アイコンを正しく表示する最も簡単な方法は、最初にAndroid Icon Studioでアイコンをレンダリングすることです:

https://romannurik.github.io/AndroidAssetStudio/icons-notification.html

ダウンロードしたZipからプロジェクトの/ mainフォルダーにファイルを解凍し、関連するdrawable-xxxxフォルダーに挿入します。

次に、通知の色を変更するには、次のようなものを使用します。

NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_notification_appicon) // <-- Icon from Android Icon Studio 
    .setColor(context.getColor(R.color.holo_blue))    // <-- Set your preferred icon colour to appear in the notification dropdown list
    .setContentTitle("Title")
    .setContentText("Content")
    .setAutoCancel(true)
    .setCategory(NotificationCompat.CATEGORY_EVENT)
    .setDefaults(Notification.DEFAULT_ALL)
    .setPriority(NotificationCompat.PRIORITY_DEFAULT);
0
James Semaj