10
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

Android Push通知のアイコンを作成 + 設定

はじめに

Androidのプッシュ通知には、アイコンを設定する事が推奨されています。

が、
「プッシュ通知用のアイコン、どうやって作るの?」
「そのアイコンはどうやって設定するの??」

といった事が、こちらの公式ドキュメントでは非常にわかりにくかった・・・

なので、この記事でまとめることにする。

プッシュ通知のアイコンを作成

こちらより

Android 5以降、OSは、アプリがAndroid API 21+をターゲットにしている場合、小さな通知アイコンをすべて白に強制します。正しいアイコンを作成しないと、ほとんどの場合、ステータスバーにベルまたは白一色のアイコンとして表示されます。

と書かれてある。

つまり、通知バーに出てくるアイコンは白黒じゃ無いとダメってことだ。
notification-area_2x.png

白黒アイコンを作る

「どうやって白黒にするよ?」って問いに答えるには、アイコンによって様々なので、、、笑

あくまで私の例だが、IconFnderからまずは白黒のアイコンを複数取る。
そこから適当にパワポとかで合体させて、アイコンを完成させる。

まぁやり方は何でもいいのだが、次は背景を透明にする必要がある。
私がいつも使うのはPeko Stepと言うサイト。
ここで黒以外を透明にする。

これでアイコンは完成!

白黒アイコンをプッシュ通知用のサイズにする

Android Asset Studioにアクセスし、Notification icon generatorを選ぶ。

次にImageを選択し、作成した白黒のアイコンを選択。
スクリーンショット 2020-01-01 21.21.18.jpg

ダウンロードするとこんな感じで複数のアイコンがゲットできる。

スクリーンショット 2020-01-01 21.23.56.jpg

Androidのmipmapフォルダにアイコンを配置

配置先はどうすれば良いのかイマイチわからないが、とりあえずmipmap-フォルダに入れることにした。

app/src/main/res/mipmap-の各解像度?のフォルダへ。

drawable-hdpi/アイコン画像mipmap-hdpi/アイコン画像

みたいな感じで移す。

【Andorid】アプリアイコンは「mipmap-」というリソースディレクトリに入れるのがいいらしい

AndroidManifestで設定

app/src/main/res/AndroidManifest.xmlを開き設定する。

AndroidManifest.xml
 <application>
     <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@mipmap/アイコンの名前" />
    </application>

※アイコンの名前に拡張しは不要!
仮にアイコン画像のファイル名がpush_icon.pngだったしよう。
その場合は以下のようにする。

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@mipmap/push_icon" />

このミスで私はビルド失敗しました。。。

最後に

アプリを閉じた状態でプッシュ通知を送り、こんな感じで表示されれば問題なし!

Screenshot_20200101_173232.jpg

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
10
Help us understand the problem. What are the problem?