Проблемы с созданием большого значка высокого разрешения для уведомлений Android в Jelly Bean

Я пытаюсь создать красивую графику высокого разрешения для уведомлений Android, но сталкиваюсь с некоторыми проблемами. В Jelly Bean появилось новое место для больших значков ( см. рекомендации по дизайну уведомлений здесь ) в левой части баннера уведомлений (см. ниже #2 Большой значок):

введите описание изображения здесь

Все стандартные значки Android красивы и имеют высокое разрешение, но, к сожалению, значки, которые я создавал в Illustrator/Photoshop, не выглядят такими четкими на дисплее с высоким разрешением.

Мои файлы имеют размер 96 x 96 пикселей, но я обеспокоен тем, что это не правильный размер для значков с высоким разрешением, и я нигде не нашел хорошей информации о наилучшем размере для них.

Любая помощь приветствуется!

Ответы (1)

Иконки Android (и другие элементы пользовательского интерфейса, такие как длина перетаскивания) измеряются в dp. A dp— это пиксель, не зависящий от устройства/плотности . 1 dpсоответствует 1 пикселю на экране с разрешением 160 dpi . Но чтобы преобразовать в другие плотности экрана, вам нужно умножить его на коэффициент плотности. Поэтому обычно для большинства значков рекомендуется использовать несколько изображений .

Например, значки уведомлений, используемые в строке состояния , указаны как 24x24 dp с отступом в 1 dp (поэтому фактическая иконка занимает только оптический квадрат 22x22 dp, хотя некоторые из AA могут перетекать в это поле/безопасный кадр в 1 dp). ). Чтобы преобразовать 24 dp в фактические размеры пикселей, используются следующие грубые расчеты:

display density  dp units * scale = px units
ldpi   ~120 dpi   24x24 dp * .75   = 18x18 px
mdpi   ~160 dpi   24x24 dp * 1.0   = 24x24 px
hdpi   ~240 dpi   24x24 dp * 1.5   = 36x36 px
xhdpi  ~320 dpi   24x24 dp * 2.0   = 48x48 px
xxhdpi ~480 dpi   24x24 dp * 3.0   = 72x72 px

Существует также промежуточная плотность отображения, называемая tvdpi(~ 213 точек на дюйм), которая находится между mdpiи hdpiи имеет масштабный коэффициент 1.33, но это встречается гораздо реже. В документах Android рекомендуется соблюдать коэффициент 3:4:6:8:12масштабирования при предоставлении предварительно масштабированных растровых изображений (обычно PNG) для наиболее распространенных плотностей отображения.

Я нигде не вижу, где они указывают размер dp для больших значков, используемых в уведомлениях, но высота каждого уведомления в обычном представлении папки «Входящие » составляет 64 dp . Таким образом, это означает, что максимальный размер отображаемых значков/изображений будет:

ldpi:      48x48 px
mdpi:      64x64 px
hdpi:      96x96 px
xhdpi:   128x128 px
xxhpdi:  192x192 px

Если вы хотите точно знать, какие размеры изображений имеют стандартные значки Android, вы сможете узнать это в пакете шаблонов значков Android версии 4.0 .

См. также этот вопрос SO: Сотовые уведомления: как установить largeIconправильный размер?

Вы должны переписать часть проектной документации Android! Вся информация есть, но она не очень эффективно сжата. Документы в большинстве случаев фантастические, но здесь они меня подвели. Большое спасибо за самое ясное и краткое объяснение!