В строке состояния Android ожидаются значки размером 25x25dp, а в рекомендациях рекомендуется 32x32dp. Кто не прав?
В соответствии с рекомендациями по дизайну иконок для Android ( здесь см. Таблицу № 1), разработчик должен предоставить значки в строке состояния следующих размеров:
Status Bar 24 x 24 px (LDPI) 32 x 32 px (MDPI) 48 x 48 px (HDPI)
В то время как мои измерения показывают, что строка состояния всегда имеет 25 dp в высоту и ожидает значки 25x25dp. Это переводит к этим размерам:
Status Bar 19 x 19 px (LDPI) 25 x 25 px (MDPI) 38 x 38 px (HDPI)
Вот как я получаю эти размеры:
25dp * 0.75 = 18.75 => 19px (LDPI)
25dp * 1 = 25 => 25px (MDPI)
25dp * 1.5 = 37.5 => 38px (HDPI)
Я подтвердил расчетные размеры на нескольких телефонах Android и на эмуляторах.
Вопрос в основном таков: почему в руководствах используются размеры, отличающиеся от того, что в действительности используется в строке состояния?
PS Мне действительно нужно нарушать руководящие принципы из-за точных требований к управлению пикселями. И меня просто смутило это положение вещей. Поэтому объяснение того, почему это так, действительно помогло бы мне.
2 ответа
Предупреждение: независимо от того, был ли ответ верным при написании, сейчас он кажется неправильным. См. https://www.google.com/design/spec/style/icons.html действующие рекомендации.
Это просто кажется ошибкой. (Обратите внимание, что по состоянию на 2010-12-04 они также пересекли свои ссылки на рисунки 4 и 5 на этой странице.)
Как указывает Лекс, у них правильный номер ниже, в разделе "Значок строки состояния".
Они также диктуют 2-пиксельный "безопасный кадр" со всех сторон в разрешении 25x25, в который должна вписываться форма вашей иконки, хотя кажется, что можно использовать некоторые элементы, связанные с алиасингом, но только по бокам, для этого тип значка. (Это означает, что вы действительно хотите стремиться к 21x21 при таком размере.)
На самом деле это
- 18px (ldpi)
- 24px (MDPI)
- 36px (ИПЧР)
- 48px (xhdpi)
- 72px (xxhdpi)
- 96 пикселей (xxxhdpi)
это размер 24dp с отступом 2dp, что означает содержание 20dp
px = dp * (dpi/160)