Сетки и единицы измерения

Независимые от плотности пиксели (dp) и масштабируемые пиксели (sp) необходимы для создания макетов и отображения шрифтов, которые единообразно реагируют на широкий диапазон плотности экрана, классов размеров, форм-факторов и соотношений сторон, характерных для устройств Android.

Основные выводы

  • При использовании базовой сетки придерживайтесь размеров 4 и 8.
  • Технические характеристики указываются в единицах dp и sp, а не в пикселях.
  • Экспорт растровых изображений для всех сегментов.
  • При проектировании учитывались адаптивные характеристики, а также различные размеры, разрешения и соотношения сторон экрана.
  • Независимые от плотности пиксели (dp) : Независимые от плотности пиксели — это гибкие единицы измерения, которые масштабируются таким образом, чтобы иметь одинаковые размеры на любом экране. Они основаны на физической плотности экрана. Эти единицы измерения относительны для экрана с разрешением 160 dpi (точек на дюйм), на котором 1 dp примерно равен 1 пикселю.
  • Масштабируемые пиксели (sp) : Масштабируемые пиксели выполняют ту же функцию, что и dp, но для шрифтов. Значение по умолчанию для sp совпадает со значением по умолчанию для dp. Система Android вычисляет фактический размер шрифта, который следует использовать, на основе устройства и предпочтений пользователя, заданных в настройках устройства.
Обозначение dp и sp

Основное различие между этими единицами измерения заключается в том, что масштабируемые пиксели сохраняют настройки шрифта пользователя. Пользователи, у которых установлены более крупные настройки текста для обеспечения доступности, видят размер шрифта, соответствующий их предпочтениям. См. как изменить размер шрифта в Compose.

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

Корзины плотности

Экраны с высокой плотностью имеют больше пикселей на дюйм, чем экраны с низкой плотностью. В результате элементы пользовательского интерфейса с одинаковыми размерами в пикселях отображаются крупнее на экранах с низкой плотностью и меньше на экранах с высокой плотностью. Именно поэтому не следует указывать размеры в пикселях.

Android группирует диапазоны плотности экрана в «категории» и использует их для предоставления оптимального набора ресурсов вашему устройству. Наиболее часто используемые категории плотности — это mdpi , hdpi , xhdpi , xxhdpi и xxxhdpi ( nodpi и anydpi обозначают категорию, которая не масштабируется в зависимости от разрешения устройства и обычно используется для векторных изображений), каждая из которых соответствует файлу ресурсов вашего приложения.

mdpi имеет плотность x1, hdpi имеет плотность x1,5,  xhdpi имеет плотность x2, xxhdpi имеет плотность x3, и  xxxhdpi имеет плотность x4
Дыни сорта «Парти» в зависимости от их плотности

Для расчета DP:

dp = (ширина в пикселях * 160) / плотность экрана

Базовая сетка

Использование базовой сетки помогает обеспечить единообразное расстояние и выравнивание элементов пользовательского интерфейса. В Android UI для компоновки, компонентов и отступов используется сетка с шагом 8 dp.

Отображается сетка с шагом в 8 знаков после запятой, с выделением приращений в 8 знаков после запятой.

Более мелкие элементы, такие как значки, текст и некоторые элементы внутри компонентов, лучше всего выравнивать по сетке с шагом 4 dp.

Сетки с шагом 8 dp идеально подходят для большинства элементов пользовательского интерфейса, в то время как сетка с шагом 4 dp лучше подходит для более мелких элементов, таких как иконки.

Сетки компоновки

Сетки — это основа любого макета. Учитывайте иерархию контента, его количество и даже смысл.

Иерархическая сетка

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

Пример иерархической сетки на компактных и больших

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

Модульная сетка

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

Пример модульной сетки на компактных и больших размерах.

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

Сетка столбцов

Столбцы образуют сеточную структуру, обеспечивающую вертикальное разделение макета за счет разделения контента внутри основной области. Контент размещается в тех областях экрана, которые содержат столбцы. Для выравнивания контента используется базовая сетка, но при этом сохраняется гибкость в размерах.

Пример столбчатой ​​сетки для компактных и больших объектов.

Изучите основы настройки столбчатой ​​сетки и применения контента в разделе «Основы компоновки» . Столбчатая сетка может адаптироваться к различным форм-факторам, изменяя размеры и количество столбцов в зависимости от размера экрана, а также позволяя масштабировать контент.

Четырехколоночная сетка

Размерные категории

Классы размеров окон — это набор заданных контрольных точек области просмотра, которые помогают проектировать, разрабатывать и тестировать адаптивные макеты приложений. Android делит классы размеров окон на 3: Compact, Medium и Expanded. Подробнее о классах размеров окон можно прочитать здесь.

Соотношение сторон

Соотношение сторон — это отношение ширины элемента к его высоте. Соотношение сторон записывается как ширина:высота.

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

Для использования в пользовательском интерфейсе рекомендуются следующие соотношения сторон:

  • 16:9
  • 3:2
  • 4:3
  • 1:1
  • 3:4
  • 2:3