Как правильно рассчитать размер элементов с дизайна?
Есть подготовленный дизайн в figma, размер холста 360px на 640px.
Я немного прочел про плотность пикселей, density, dp и dpi.
Но все равно не могу до конца разобраться.
- Какой эмулятор выбрать, чтобы правильно создать макет, чтобы соответствовал 360px на 640px?
- Как правильно задавать размеры в layout в dp, как рассчитать?
Ответы (1 шт):
Любая современная тулза для работы с дизайнами понимает, что такое Android и соответсвенно все что вам нужно при написании дизайна - это брать точные размеры и писать их в dp.
Но тут есть моменты. Как вы написали выше дизайнеры делают дизайн в разрешении 360px на 640px, и это не значит, что на всех экранах один и тот же дизайн будет выглядеть одинаково. У разных устройств разное соотношение сторон, разная плотность пикселей. Для того, чтоб все это работало корректно надо понимать несколько вещей:
- старайтесь как можно меньше хардкодить размеры. Т.е. если у вас есть кнопка в дизайне размером 290px и она имеет 16px отступы - вы не должны задавать ей 290dp, вы должны ее сделать что-то вроде
match_parentи задать отступы 16dp. Потому как фактический размер кнопки может отличаться на реальном устройстве. - используйте контсрейнты. Т.е. старайтесь задавать размеры или положение элементов на экране относительно других элементов, а не просто
margin_top = 100dp. - иногда можно и приходится хардкодить. Но в таком случае вы должны быть готовы к тому, что что-то не влезет или наоборот будет где-то пустота. Например такие вещи делают для иконок или каких-то фиксированных плиток.
- важно чтоб дизайнер понимал, для чего он делает дизайн. Ну и без этого никуда. Важно чтоб сам дизайнер понимал что 1к1 на реальном устройстве не будет и рисовал адаптивный дизайн.