Значок уведомления обрезается

Я использую уведомление в своем приложении, и у меня проблема со значком уведомлений. Проблема заключается в том, что при получении уведомления текстом значок обрезается, и он выглядит очень плохо. после окончания тикера значок выглядит хорошо. Я добавил изображение с тем, как оно выглядит, когда прибытие уведомления и после завершения тикера. the upper image is the icon when the notification arrived

Я не могу использовать notificationCompat, потому что мое приложение должно поддерживать api level 8. как я могу исправить эту проблему, не изменяя размер значка до 36X36 px? эта проблема возникает только в nexus 4 и htc one, во всех устройствах samsung, которые я проверил (s2 4.1.2, s2 4.0.3, s3 4.1.2, s4 4.2.2, galaxy y), он отлично работает.

спасибо в advanace

Edit:

Мне удалось сделать уведомление не обрезанным. НО! когда я добавляю текст тега (который я должен добавить), уведомление снова обрезается. Что могло случиться?

Ответы

Ответ 1

Значок уведомлений

должен быть 24x24 dp для оптимального решения на большинстве устройств.

см.

http://developer.android.com/design/style/iconography.html#notification

или создайте следующие размеры уведомлений:

  • 96x96px в drawable-xxxhdpi

  • Размер 72x72px в drawable-xxhdpi

  • 48x48px в drawable-xhdpi

  • 36x36px в drawable-hdpi

  • 24x24px в drawable-mdpi

  • 18x18px в drawable-ldpi

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

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

http://www.creativepulse.gr/en/blog/2014/icon-sizes-for-android-apps

Ответ 2

Если вы используете Eclipse, вы можете создать значок уведомлений с помощью стандартного мастера.

  • Перейдите в меню Файл- > Создать- > Прочее
  • Выберите Android- > значок значка Android
  • Выберите "Иконки уведомлений", введите имя ресурса и нажмите "Далее"
  • Выберите "Изображение" для Foreground и найдите файл значка
  • Нажмите "Готово"

Мастер создаст ресурс, который вы будете использовать в setSmallIcon(). Я создал свои значки уведомлений таким образом, и он выглядел отлично с тикером.