Независимые от плотности пиксели (dp) и масштабируемые пиксели (sp) необходимы для создания макетов и представления шрифтов, которые одинаково реагируют на широкий диапазон плотностей экрана, классов размеров, форм-факторов и соотношений сторон, из которых состоят устройства Android.
Вынос
- Если вы используете базовую сетку, придерживайтесь размеров 4 и 8.
- Запишите спецификации в dp и sp вместо пикселей.
- Экспортируйте растровую/растровую графику для всех сегментов.
- Проектируйте с учетом адаптивного мышления, учитывая различные классы размеров, разрешения и соотношения сторон.
- Независимые от плотности пиксели (dp) : независимые от плотности пиксели представляют собой гибкие единицы, которые масштабируются для получения одинаковых размеров на любом экране. Они основаны на физической плотности экрана. Эти единицы относятся к экрану с разрешением 160 точек на дюйм (точек на дюйм), на котором 1 dp примерно равен 1 пикселю.
- Масштабируемые пиксели (sp) : Масштабируемые пиксели выполняют ту же функцию, что и dp, но для шрифтов. Значение по умолчанию для sp такое же, как значение по умолчанию для dp. Система Android рассчитывает фактический размер шрифта, который будет использоваться, в зависимости от устройства и предпочтений пользователя, установленных в приложении «Настройки» на его устройстве Android.
![](https://developer.android.com/static/images/design/ui/mobile/grids-and-units-1-dp-and-sp.png?authuser=5&hl=ru)
Основное различие между этими единицами измерения заключается в том, что масштабируемые пиксели сохраняют настройки шрифта пользователя. Пользователи, у которых для специальных возможностей установлены более крупные настройки текста, видят, что размеры шрифта соответствуют их предпочтениям. Узнайте, как изменить размер шрифта в Compose.
Android использует эти единицы для масштабирования и преобразования в зависимости от устройства и разрешения.
Ковши плотности
Экраны с высокой плотностью имеют больше пикселей на дюйм, чем экраны с низкой плотностью. В результате элементы пользовательского интерфейса с одинаковыми размерами в пикселях кажутся больше на экранах с низкой плотностью и меньше — на экранах с высокой плотностью. Вот почему не следует объявлять измерения в пикселях.
Android группирует диапазоны плотности экрана в «корзины» и использует их для доставки оптимального набора ресурсов на ваше устройство. Наиболее часто используемые сегменты плотности — это mdpi
, hdpi
, xhdpi
, xxhdpi
и xxxhdpi
( nodpi
и anydpi
относятся к сегменту, который не масштабируется в зависимости от разрешения устройства, обычно используется для векторных изображений), каждый из которых соответствует файлу ресурсов вашего приложения.
![](https://developer.android.com/static/images/design/ui/mobile/grids-and-units-2-density-buckets.png?authuser=5&hl=ru)
Чтобы рассчитать dp:
dp = (ширина в пикселях * 160)/плотность экрана
Сетки
Базовая сетка
Построение базовой сетки помогает создать единообразные интервалы и выравнивание в пользовательском интерфейсе. Пользовательский интерфейс Android использует сетку размером 8 dp для макета, компонентов и интервалов.
Меньшие элементы, такие как значки, текст и некоторые элементы внутри компонентов, лучше всего выравнивать по сетке размером 4 dp.
![](https://developer.android.com/static/images/design/ui/mobile/grids-and-units-3-baseline-grids.png?authuser=5&hl=ru)
Сетка столбцов
Столбцы создают сеточную структуру, обеспечивающую вертикальное определение макета путем разделения содержимого внутри основной области. Содержимое размещается в областях экрана, содержащих столбцы. Выровняйте по базовой сетке, чтобы выровнять содержимое, но при этом следует сохранять гибкий размер. Изучите основы настройки сетки столбцов и применения содержимого в разделе «Основы макета» .
![](https://developer.android.com/static/images/design/ui/mobile/grids-and-units-4-column-grid.png?authuser=5&hl=ru)
Посетите страницу канонических макетов Material 3 для получения подробной информации о создании гибких макетов для разных форм-факторов.
Классы размеров
Классы размеров окон — это набор точек останова в области просмотра, которые помогают проектировать, разрабатывать и тестировать адаптивные макеты приложений. Android делит классы размеров окон на 3: компактный, средний и расширенный. Узнайте больше о классах размеров окон .
Соотношения сторон
Соотношение сторон — это соотношение ширины элемента к его высоте. Соотношения сторон записываются как ширина:высота.
Чтобы обеспечить единообразие макета, используйте одинаковое соотношение сторон для таких элементов, как изображения, поверхности и размер экрана.
Следующие соотношения сторон рекомендуются для использования в вашем пользовательском интерфейсе:
- 16:9
- 3:2
- 4:3
- 1:1
- 3:4
- 2:3