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

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

Вынос

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

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

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

Ковши плотности

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

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

mdpi имеет плотность x1, hdpi имеет плотность x1,5,             xhdpi имеет плотность x2, xxhdpi имеет плотность x3 и             xxxhdpi имеет плотность x4.
Рисунок 2: Партийная дыня с соответствующей плотностью.

Чтобы рассчитать dp:

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

Сетки

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

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

Видео 1. Показ сетки размером 8 дп с выделением приращений в 8 дп.

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

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

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

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

Рисунок 4. Сетка из четырех столбцов.

Посетите страницу канонических макетов Material 3 для получения подробной информации о создании гибких макетов для разных форм-факторов.

Классы размеров

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

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

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

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

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

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