1. ホーム
  2. アンドロイド

[解決済み】Android 5 Lollipopで通知バーのアイコンが白くなる件

2022-04-09 21:25:02

質問

カスタム通知を表示するアプリを持っています。問題は、Android 5で実行すると、通知バーの小さなアイコンが白く表示されることです。どうすれば直せますか?

解決方法を教えてください。

受け入れている答えは、(完全に)正しくありません。確かに、通知アイコンをカラーで表示することはできますが、ターゲット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;
}