Androidアプリアイコンからカスタムアイコンへのデフォルトのプッシュ通知アイコンをオーバーライドできますか?
プッシュ通知が来たときに、デフォルトのfirebase実装を使用してシステムトレイに通知を表示しています。私のアプリのアイコンは色付きでグラデーションがあるので、通知が来ると、Androidはそれを白黒バージョンにして、白い円のように見せようとしました。
デフォルトの通知アイコンをデフォルトのアプリアイコンの代わりに別のものに更新する方法はありますか?
PS:マニフェストの構成変更が必要で、NotificationCompat.Builderを使用したくないソリューションを楽しみにしています
https://firebase.google.com/docs/cloud-messaging/Android/receive に従ってマニフェストでこれを使用できます
<!-- Set custom default icon. This is used when no icon is set for incoming notification
messages.See README(https://github.com/firebase/quickstart-Android/tree/master/messaging#custom-default-icon) for more. -->
<meta-data
Android:name="com.google.firebase.messaging.default_notification_icon"
Android:resource="@drawable/ic_stat_ic_notification" />
<!-- Set color used with incoming notification messages.
This is used when no color is set for the incoming notification message. See README
(https://github.com/firebase/quickstart-Android/tree/master/messaging#custom-default-color) for more. -->
<meta-data
Android:name="com.google.firebase.messaging.default_notification_color"
Android:resource="@color/colorAccent" />
それが人々を助けることを願っています。
設定できます
.setSmallIcon(int);
.setLargeIcon(bitmap);
SetSmallIcon()で設定された小さなアイコン
NotificationCompat.Builder setLargeIcon (Bitmap icon)
ティッカーと通知に表示される大きなアイコンを設定します。
notificationCompat.Builderで。
ドキュメント- https://developer.Android.com/reference/Android/support/v4/app/NotificationCompat.Builder.html
Builder
オブジェクトのNotification
クラス。通知のさまざまなフィールドを設定し、プラットフォームの通知レイアウトテンプレートを使用してコンテンツビューを生成する便利な方法を提供します。公式ドキュメントを確認してください こちら
Notification noti = new Notification.Builder(mContext)
.setContentTitle("New mail from " + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build();
ここで、通知用のアイコンを含むカスタムフィールドを設定できます。
乾杯!ハッピーコーディング
はい、できます。白い円のアイコンを避けたい場合は、アイコンを透明にし、背景色を追加する必要があります。透明アイコンを通して表示され、アイコンを表示し、カラフルにします。以下のサンプルコードでsetSmallIconとsetColorを確認してください。 このドキュメントを確認し、transparent を検索してください。
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
context)
.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.transaparentIcon)
.setColor(context.getResources().getColor(R.color.notif_color))
.setWhen(System.currentTimeMillis())
.setContentTitle(context.getString(R.string.app_name))
.setStyle(
new NotificationCompat.BigTextStyle()
.bigText(notificationText))
.setContentText(notificationText)
.setAutoCancel(true);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.custom_icon)
.setContentTitle("FCM Message")
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
このようにすることができます:
int icon=R.drwable.icon; //Add your icon name here
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(icon);