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

Независимые от плотности пиксели (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 относятся к сегменту, который не масштабируется в зависимости от разрешения устройства, обычно используется для векторных изображений), каждый из которых соответствует файлу ресурсов вашего приложения.

Рисунок 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