Плотность пикселей (density) — это отношение числа физических пикселей к числу пикселей, отображаемых на экране (dp или dips). Она выражает количество пикселей на дюйм (dpi) экрана. Высокая плотность означает больше пикселей на дюйм.
Android использует density для масштабирования UI-элементов таким образом, чтобы они выглядели примерно одинакового физического размера на экранах с различной плотностью пикселей.
Основные категории плотности в Android:
| Категория плотности | Значение DPI | Коэффициент масштабирования |
|---|---|---|
| ldpi | ~120 | 0.75 |
| mdpi | ~160 | 1.0 |
| hdpi | ~240 | 1.5 |
| xhdpi | ~320 | 2.0 |
| xxhdpi | ~480 | 3.0 |
| xxxhdpi | ~640 | 4.0 |
dp - это единица измерения, основанная на mdpi (160 dpi), где 1 dp = 1 пиксель. На экранах с другой плотностью dp преобразуется в соответствующее количество физических пикселей с учетом коэффициента масштабирования.
Например, на экране xhdpi (320 dpi, коэффициент 2.0):
1 dp = 2 физических пикселя.
Использование dp вместо px для размеров и отступов в макетах обеспечивает консистентный размер UI-элементов на разных устройствах. Ресурсы (например, изображения) также предоставляются в разных папках ресурсов (res/drawable-mdpi, res/drawable-hdpi и т.д.) для соответствия различным плотностям.
java
xml