Могу ли я переопределить значок уведомления по умолчанию по умолчанию в андроиде от значка приложения до пользовательского значка?
Я использую реализацию firebase по умолчанию для отображения уведомлений в системном трее, когда приходит push-уведомление. Так как значок моего приложения окрашен и имеет градиент, поэтому, когда приходит уведомление, андроид пытается сделать черно-белую версию и сделать его похожим на белый круг.
Есть ли способ обновить значок уведомления по умолчанию для чего-то другого вместо значка приложения по умолчанию?
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
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.mipmap.custom_icon) .setContentTitle("FCM Message") .setContentText(messageBody) .setAutoCancel(true) .setSound(defaultSoundUri) .setContentIntent(pendingIntent);
Класс Builder
для объектов Notification
. Предоставляет удобный способ установки различных полей уведомления и создания представлений контента с использованием шаблона макета уведомлений платформы. Проверьте официальную документацию здесь
Notification noti = new Notification.Builder(mContext) .setContentTitle("New mail from " + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_mail) .setLargeIcon(aBitmap) .build();
приNotification noti = new Notification.Builder(mContext) .setContentTitle("New mail from " + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_mail) .setLargeIcon(aBitmap) .build();
Здесь вы можете установить настраиваемые поля, включая значок для ваших уведомлений.
Ура! Счастливое кодирование
Вы можете сделать следующее:
int icon=R.drwable.icon; //Add your icon name here NotificationCompat.Builder builder = new NotificationCompat.Builder(this); builder.setSmallIcon(icon);
Да, вы можете это сделать. Если вы хотите избежать значка белого круга, вы должны сделать свой значок прозрачным и добавить к нему цвет фона. Таким образом, цвет, который вы используете, появляется через прозрачный значок и делает значок видимым и красочным. Пожалуйста, проверьте на setSmallIcon и setColor в приведенном ниже примере кода. Проверьте этот документ и выполните поиск прозрачных
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);