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