"dp" == "Плотно-независимые пиксели" (по этой же причине его ранее называли "dip", хотя я предпочитаю использовать "dp" в наши дни.)
Думайте об этом, как о других единицах - «дюймах» (дюймах), «мм» (миллиметрах) и т. Д. Это позволяет вам указывать размер, который масштабируется в зависимости от плотности экрана.
Мы определяем mdpi как базовую плотность, так что «10dp» на экране mdpi даст ровно 10 пикселей. На экране hdpi это приведет к 15 пикселям, потому что hdpi - 1.5 * mdpi.
Обратите внимание, что хотя константы для различных плотностей аналогичны DPI (mdpi равно 160 и т. Д.), Плотность равна , а не точно DPI. Это абстрактный коэффициент масштабирования, который корректирует экранное dpi, но не пытается точно его отобразить. (Вы бы использовали «in», «mm» и т. Д. Для точных размеров, но 99,9% - это не то, что вам нужно, поэтому придерживайтесь «dp».) Это значительно упрощает жизнь всем, потому что вам не нужно иметь дело со многими Android устройства имеют немного различное количество места для своего пользовательского интерфейса, потому что у каждого из них несколько разные DPI. Кроме того, производители устройств могут выбирать плотность своего устройства для достижения желаемого пользовательского интерфейса - например, вкладка Samsung использует плотность, которая на справедливую величину больше фактического DPI, что в результате приводит к увеличению общего пользовательского интерфейса.