2013-07-13 4 views
2

Я хотел бы, чтобы поместить постоянный текст в область уведомлений, которая обновляется раз в секунду. setTicker() в классе NotificationCompat.Builder не будет работать, поскольку он скрывает все остальное в области уведомлений. Я просто хочу разместить там текст, состоящий из нескольких символов, занимая лишь небольшую часть области уведомлений.Возможно постоянное обновление текста в области уведомлений?

Один из способов, я думаю, это можно сделать, позвонив setSmallIcon() и каким-то образом используя эту небольшую область значков для отображения текста. Я сделал снимок экрана с уведомлением приложения, которое, как я полагаю, использует эту стратегию. Обратите внимание на 165 кб/с:

enter image description here

ответ

2

Вы не должны использовать тикер текст уведомления обновления пользователя. Этот текст отображается, когда уведомление отправлено.

Как и на скриншоте, он использует setSmallIcon, как вы упомянули.

Вы можете создать точечный рисунок и нарисовать текст на с холста API, then updating your current ongoing notification

Example how to draw text on bitmap

Это изменит значок в статусной и видимой для пользователя.

+0

Как и в примере, есть несколько разных возможных номеров, которые могут отображаться. Есть ли способ отредактировать доступные ресурсы «на лету», или мне нужно будет заранее вывести все номера и использовать гигантский оператор switch case, чтобы определить, какой вариант я хочу использовать. Это звучит как ужасный метод, но если я не могу редактировать эти чертежи из активности, это похоже на единственный вариант. – Richard

+1

Я бы просто использовал Canvas API для рисования растрового изображения, это легко и быстро. В моем сообщении есть ссылка с примером. Нет необходимости создавать много изображений. –

+0

Я ценю помощь, но считаю, что изображения для setSmallIcon должны быть предварительно определены в пакете. Я не думаю, что у вас есть возможность редактировать их на лету. – Richard

Смежные вопросы