Динамический значок Android Notification

Можно ли наложить значок уведомления с помощью некоторого текста /int? или можно создать пользовательский значок на лету?

Например, у меня есть текущий значок, отображаемый для моего уведомления, я хотел бы иметь возможность отображать, например, номер 2 в красном поле.

icon

Поскольку это не количество уведомлений (так что не красный пузырь), установка "числа" в уведомлении не будет работать.

Должен ли я просто создать индивидуальный значок для каждого возможного числа, которое я хочу отобразить? Или есть лучший способ достичь этого?

Ответ 1

Попробуйте использовать AnimationDrawable. Вы можете использовать их для объединения нескольких чертежей в один и выбрать тот, который хотите отобразить. Я действительно думаю, что это путь.

Дополнительная информация: AnimationDrawable

Конечно, вам нужно будет предоставить индивидуальные чертежи для всех ваших целых чисел, которые вы хотите отобразить, но таким образом вы можете легко изменить внешний вид своих уведомлений.

Ответ 2

Notification.Builder

Имеет два метода:

setLargeIcon(Bitmap icon)

и

setSmallIcon(int icon)

Поскольку у маленького значка, похоже, есть идентификатор ресурса, я думаю, вам нужно предоставить ресурс, пригодный для рисования, для каждого возможного номера, который вы хотите, тогда вы можете выбрать, какой из них использовать во время выполнения.

Значок "Большая", однако, принимает растровое изображение, поэтому вы можете сгенерировать его с помощью некоторого кода Java и передать его.

Искренне, хотя я точно не знаю, какая разница между значками Large и Small. У меня нет большого опыта работы с уведомлениями в целом. Вам может повезти и найти, что setLargeIcon будет работать для вас. Но также может быть, что вы можете использовать только объект Bitmap для изображения, которое отображается, когда панель уведомлений вытаскивается вниз, а не та, которая отображается во время ее свертывания.