【Android】プッシュ通知アイコンの背景色を変更するにはどうしたらいいですか?

プッシュ通知の左側に表示される通知アイコンの背景色を変更する場合は、アイコンのカスタマイズが必要になります。
 

プッシュ通知アイコン(通知の左側)

image (11).png

 

プッシュ通知アイコンの背景色を変更する場合は、以下の点をご確認ください。

 

通知チャネルのカスタマイズ

通知アイコンのカスタマイズを行うためには、お客様ご自身で通知チャネルを作成・変更し、登録が必要です。

通知アイコンの指定方法や通知チャネルの作成・変更方法については、
APPBOX Developers > Android SDK組み込みガイド > 各種SDK組み込みガイド > マーケティングSDK > 各種機能 >「通知カスタマイズ」をご確認ください。

 

リソースの準備

プッシュ通知アイコンとして使用する画像ファイルを準備します。 アイコンは、resフォルダ配下の各サイズに対応したdrawableフォルダに配置します。 アイコンの画像を適したdrawableフォルダに配置後、AppboxCallback.kt内のbuilder.setSmallIconにて該当アイコンを指定します。

 

【フォルダとアイコンのサイズ】

フォルダ名 画像サイズ
drawable-mdpi 48x48
drawable-hdpi 72x72
drawable-xhdpi 96x96
drawable-xxhdpi 144x144
drawable-xxxhdpi 192x192

 

 アイコン作成の注意点

一般的にプッシュ通知アイコンは、白と透過の2つの組み合わせで作成するため、アイコンの透過部分に、背景色(端末のテーマカラー)が反映されます。
アイコンの形を表現したい箇所は白で塗りつぶし、背景色を適用したい箇所は透過にしてください。

例)

image (12).png

 

ソースの変更

プッシュ通知のカスタマイズを有効にするため、以下のファイルを編集してください。

 

  • appbox_marketing_values.xml
    プッシュ通知のカスタマイズを有効にする設定を追加します。
<bool name="appbox_notification_customize_enabled">true</bool>

 

  • AppboxCallback.kt
    AppboxCallback.ktに配置したアイコンのIDをbuilder.setSmallIconに指定します。
override fun onNotificaitonAppeared(
    context: Context,
    msgId: String,
    msg: String?,
    icon: Bitmap?,
    pendingIntent: PendingIntent?
): Notification {
    // 独自の通知エリア作成サンプル
    val builder: NotificationCompat.Builder = NotificationCompat.Builder(context, "sample_notification")
    builder.setTicker(msg)
    builder.setContentText(msg)
    builder.setContentTitle("sample App")
    builder.setColor(Color.parseColor("#0F69B6"))
    builder.setSmallIcon(R.drawable.appbox_notification_icon)
    builder.setContentIntent(pendingIntent)
    return builder.build()

 

  • MainActivity.kt
    MainActivity.ktに通知チャネルを作成するための以下のコードをonCreateに指定します。
override fun onCreate(savedInstanceState: Bundle?) {
	super.onCreate(savedInstanceState)
	setContentView(R.layout.activity_main)
	
	...
	
/** 下記はカスタマイズサンプルになります。  */
// 通知チャンネルサンプル
// ※ 通知エリアカスタマイズを行うとデフォルトチャンネルは削除されますので必ず任意の箇所で作成したチャンネルを登録してください
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
	val nm: NotificationManager = this.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
	val channel = NotificationChannel(
		"sample_notification",  // 通知チャンネルID
		"sample",  // 通知チャンネル名(端末のアプリ通知設定画面に表示されるチャンネル名)
		NotificationManager.IMPORTANCE_DEFAULT // 重要度
	)
	nm.createNotificationChannel(channel)
 }
}

このセクションの記事

解決できましたか?

改善のため、アンケートにご協力ください。

0人中0人がこの記事が役に立ったと言っています

コメント

0件のコメント

間違いや、他の内容について知りたいことなどがあればコメントを残してください。
任意のメールアドレスとパスワードで登録・サインインができ、お問い合わせの状況もご確認いただけます。

サインインしてコメントを残してください。