web-dev-qa-db-ja.com

通知用のsmallIconが常にグレー表示されるのはなぜですか?

私は、アプリケーションアイコンのシルエットを作成するために、グレーと白(グレーの色がhex値616161)以外の何もない、16x16のグレーアイコンを正確に作成しようとしました。

それでも、通知に白/灰色の四角として表示されるものは何でも。私は何を間違えていますか?

(私の最小apiは21です。関連があると仮定します)

16
user8367195

フォロー このリンク

まず、Androidドキュメンテーションは次のとおりです。

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

これは簡単に見逃すことができ、言及されたガイドラインに従わなかった何千人ものユーザーがアプリストアで公開されている多くのアプリを見てきました。

そこで、通知アイコンを数クリックでAndroidフレンドリーなアイコンに変換する方法を詳しく説明します。

お気に入りの画像エディターでアイコンファイルを開きます。表示したくない画像のすべての部分を透明ピクセルに変換します。すべての色と透明でないピクセルは白で表示されます。例を見てみましょう。

enter image description here

編集: tool について@Andrey Patseikoに感謝

31
nhp

通知には、Androidのバージョンごとに異なるアイコンを使用する必要があります。

Notification notification = new Notification.Builder(context)
                .setAutoCancel(true)
                .setContentTitle("My notification")
                .setContentText("Look, white in Lollipop, else color!")
                .setSmallIcon(getNotificationIcon())
                .build();
    return notification;

バージョンに基づいて通知アイコンを取得する

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;
}
6
Aj 27

Android 5.0には、さまざまなシステム変更とAPI動作の変更が含まれています。Pl。は 通知動作の変更 を通過します。

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

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

したがって、基本的には silhouette アイコンをAPIレベル21の通知アイコンとして使用する必要があります+

3
Anoop M