Как правильно рассчитать размер элементов с дизайна?

Есть подготовленный дизайн в figma, размер холста 360px на 640px.
Я немного прочел про плотность пикселей, density, dp и dpi.
Но все равно не могу до конца разобраться.

  1. Какой эмулятор выбрать, чтобы правильно создать макет, чтобы соответствовал 360px на 640px?
  2. Как правильно задавать размеры в layout в dp, как рассчитать?

Ответы (1 шт):

Автор решения: Sergei Buvaka

Любая современная тулза для работы с дизайнами понимает, что такое Android и соответсвенно все что вам нужно при написании дизайна - это брать точные размеры и писать их в dp.

Но тут есть моменты. Как вы написали выше дизайнеры делают дизайн в разрешении 360px на 640px, и это не значит, что на всех экранах один и тот же дизайн будет выглядеть одинаково. У разных устройств разное соотношение сторон, разная плотность пикселей. Для того, чтоб все это работало корректно надо понимать несколько вещей:

  • старайтесь как можно меньше хардкодить размеры. Т.е. если у вас есть кнопка в дизайне размером 290px и она имеет 16px отступы - вы не должны задавать ей 290dp, вы должны ее сделать что-то вроде match_parent и задать отступы 16dp. Потому как фактический размер кнопки может отличаться на реальном устройстве.
  • используйте контсрейнты. Т.е. старайтесь задавать размеры или положение элементов на экране относительно других элементов, а не просто margin_top = 100dp.
  • иногда можно и приходится хардкодить. Но в таком случае вы должны быть готовы к тому, что что-то не влезет или наоборот будет где-то пустота. Например такие вещи делают для иконок или каких-то фиксированных плиток.
  • важно чтоб дизайнер понимал, для чего он делает дизайн. Ну и без этого никуда. Важно чтоб сам дизайнер понимал что 1к1 на реальном устройстве не будет и рисовал адаптивный дизайн.
→ Ссылка