カスタム通知を表示するアプリがあります。問題は、Android 5 で実行すると、通知バーの小さなアイコンが白く表示されることです。どうすればこれを修正できますか?
ベストアンサー1
受け入れられた回答は (完全に) 正しくありません。確かに、通知アイコンは色付きで表示されますが、ターゲット SDK を Android Lollipop よりも低く設定するという大きな欠点があります。
提案されているように、ターゲット SDK を 20 に設定して白いアイコンの問題を解決した場合、アプリは Android Lollipop をターゲットにしなくなり、Lollipop 固有の機能を使用できなくなります。
http://developer.android.com/design/style/iconography.htmlを見ると、Android Lollipop では通知が白いスタイルで表示されるようになっていることがわかります。
Lollipop では、Google は (白い) 通知アイコンの背後に表示される色を使用することも提案しています - https://developer.android.com/about/versions/android-5.0-changes.html
したがって、より良い解決策は、アプリにシルエット アイコンを追加し、デバイスが Android Lollipop を実行している場合に使用することだと思います。
例えば:
Notification notification = new Notification.Builder(context)
.setAutoCancel(true)
.setContentTitle("My notification")
.setContentText("Look, white in Lollipop, else color!")
.setSmallIcon(getNotificationIcon())
.build();
return notification;
そして、getNotificationIcon メソッドでは次のようになります。
private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.drawable.icon_silhouette : R.drawable.ic_launcher;
}