Назад к вопросам
Junior
140
questionbank

Что такое px, dp и sp в контексте Android-разработки?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

  • px (pixels): Пиксели на экране. Это реальные точки, из которых состоит дисплей. Размер в px будет зависеть от плотности экрана. На устройствах с разной плотностью один и тот же размер в px будет занимать разную физическую площадь.

  • dp (density-independent pixels): Независимые от плотности пиксели. Единица измерения, основанная на физическом размере экрана. dp обеспечивает одинаковый физический размер элементов UI на экранах с различной плотностью. 160 dp примерно равны 1 дюйму на экране средней плотности (mdpi). Фреймворк Android масштабирует dp согласно плотности устройства.

  • sp (scale-independent pixels): Независимые от масштабирования пиксели. Схожи с dp, но дополнительно масштабируются в зависимости от настроек шрифта пользователя (например, размер шрифта в системных настройках). sp рекомендуется использовать для задания размера текста.

Пример использования в XML-разметке:

<TextView  
    android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    android:textSize="16sp"  // Размер текста в sp
    android:padding="8dp" /> // Отступы в dp

<ImageView  
    android:layout_width="50dp"  // Ширина изображения в dp
    android:layout_height="50dp"  /> // Высота изображения в dp

Сводная таблица:

Единица Назначение Масштабируется от Рекомендуется для
px Физический пиксель - Не рекомендуется
dp Независимая плотность Плотность экрана UI-элементы
sp Независимая плотность и масштабирование Плотность экрана и размер шрифта Текст