Уведомление Android отображает неправильный значок
У меня есть статический массив с иконками:
public static final int[][] ICON_IDS = { {R.drawable.ic_access_alarm_black_24dp, R.drawable.ic_access_time_black_24dp, R.drawable.ic_account_box_black_24dp, R.drawable.ic_add_black_24dp, R.drawable.ic_android_black_24dp, R.drawable.ic_clear_black_24dp, R.drawable.ic_delete_black_24dp },
{ R.drawable.ic_settings_black_24dp, R.drawable.ic_airplanemode_active_black_24dp, R.drawable.ic_filter_list_black_24dp, R.drawable.ic_account_box_black_24dp, R.drawable.ic_airline_seat_individual_suite_black_24dp, R.drawable.ic_delete_black_open_24dp, R.drawable.ic_delete_black_open_24dp}};
Я отображаю все значки, и пользователь может выбрать один. Идентификатор выбранной иконки передается менеджеру уведомлений. Это отображает уведомление как это:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(notification.getIconId())
.setContentTitle(notification.getTitle());
Я проверил с помощью "test-ImageView", что идентификатор правильный. ImageView отображает значок, выбранный пользователем (с setImageResource(notification.getIconId());)
, Но на уведомлении в панели уведомлений отображается другой значок или его нет. Если я использую.setLargeIcon(), он снова показывает правильный значок.
.setLargeIcon(BitmapFactory.decodeResource(getResources(), notification.getIconId()))
Но только в большом значке. Маленькая иконка пуста.
Значки - это значки материалов, импортируемые через векторные активы.
Что не так с этим?
1 ответ
Узнал почему. Вы не можете использовать ресурсы XML в качестве значков уведомлений.