px (pixels): Пиксели на экране. Это реальные точки, из которых состоит дисплей. Размер в px будет зависеть от плотности экрана. На устройствах с разной плотностью один и тот же размер в px будет занимать разную физическую площадь.
dp (density-independent pixels): Независимые от плотности пиксели. Единица измерения, основанная на физическом размере экрана. dp обеспечивает одинаковый физический размер элементов UI на экранах с различной плотностью. 160 dp примерно равны 1 дюйму на экране средней плотности (mdpi). Фреймворк Android масштабирует dp согласно плотности устройства.
sp (scale-independent pixels): Независимые от масштабирования пиксели. Схожи с dp, но дополнительно масштабируются в зависимости от настроек шрифта пользователя (например, размер шрифта в системных настройках). sp рекомендуется использовать для задания размера текста.
Пример использования в XML-разметке:
xml
Сводная таблица:
| Единица | Назначение | Масштабируется от | Рекомендуется для |
|---|---|---|---|
| px | Физический пиксель | - | Не рекомендуется |
| dp | Независимая плотность | Плотность экрана | UI-элементы |
| sp | Независимая плотность и масштабирование | Плотность экрана и размер шрифта | Текст |