Что такое dp

«Что такое dp» — вопрос из категории UI и Views, который задают на 27% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

dp (density-independent pixel) — единица измерения в Android, позволяющая создавать интерфейсы, которые масштабируются на экранах с разной плотностью пикселей. 1 dp примерно равен 1 физическому пикселю на экране с плотностью 160 dpi (базовая плотность).

Например, для экрана с плотностью 320 dpi (xxhdpi) 1 dp = 2 пикселя.

Использование dp вместо px помогает сохранять пропорции элементов на разных устройствах.

Пример в XML:

<Button
    android:layout_width="100dp"
    android:layout_height="50dp" />

Конвертация в код Kotlin:

val widthInPx = TypedValue.applyDimension(
    TypedValue.COMPLEX_UNIT_DIP, 
    100f, 
    resources.displayMetrics
)