Суть в том что бы прийти к одинаковому отображению элементов интерфейса на экранах с различной плотностью. Потому что устройств очень и очень много и все они разные, а некоторые из них еще и «врут».
Например, большой физический размер экрана не означает то, что на экране будет отображаться большая плотность. Также, не факт что заявленная плотность пикселей соответствует действительности, поскольку иногда плотность пикселей увеличивается програмно, чтобы подогнать интерфейс под стандартный множитель.
Как дизайнеру тебе тут нечего ловить, однако важно понимать следующее:
Всегда проверяй дизайн-макеты на реальных устройствах
DP или DiP — это аббревиатура от Device independent Pixel — это независимые от плотности пиксели. Это единицы измерения в андроид, которые могут масштабироваться для того, чтобы на любом устройстве были одинаковые размеры и отступы независимо от множителя (1x, 2x, 3x и т.д.) экрана.
При разработке приложения для Android используй dp для одинакового отображения элементов на экранах с различной плотностью.
DP и плотность пикселей
1dp = 1px на экране при плотности пикселей на дюйм 160. То есть это значение 1 к 1. Это называется mdpi. MDPI является базовой точкой отсчета. Ниже примеры других множителей, где 1dp равен:
1dp = 0.75px при плотности ниже ~120 dpi — LDPI (0.75x)
1dp = 1px при плотности ~160 dpi — MDPI (1x)
1dp = 1.5px при плотности ~240 dpi — HDPI (1.5x)
1dp = 2px при плотности ~320 dpi — XDPI (2x)
1dp = 3px при плотности ~480 dpi — XXDPI (3x)
1dp = 4px при плотности ~640 dpi — XXXDPI (4x)
Отсюда 4 вывода:
- Для начала запомни: создавай дизайны в векторных редакторах: figma, sketch, adobe xd, illustrator и т.д. Это позволит элементам, блокам, иконкам и иллюстрациям масштабироваться в любой нужный размер без потери качества.
- Макет и все его элементы надо делать изначально 1к1, то есть в MDPI. В любом редакторе это 360px на 640px — это общепринятый размер экрана. То есть под остальные разрешения рисовать не надо. Исключение: какой-то уникальный или целевой девайс, чтобы посмотреть как смотрится макет.
- Затем экспорт под необходимые разрешения 1x, 2x, 3x, 4x. Потому что если дизайн будет спроектирован в 2х изначально, то увеличив иллюстрацию на 150% чтобы получить 3x, то ты увидишь размытые контуры — это плохо.
- Ранее я писал, что устройства могут врать и доводить плотность пикселей до какого-то значения програмно, поэтому тестируй и смотри макеты на реальном устройстве.