Реализация дизайна интерфейса для нескольких экранов - PullRequest
0 голосов
/ 15 ноября 2018

Последние 6 месяцев я занимаюсь разработкой для Android, недавно получил дизайн от клиента.Я реализовал дизайн, и он сказал, что это не совсем похоже на то, что сделал дизайнер.Затем он снова дал мне проект со следующими характеристиками

enter image description here

мой вопрос - это право добавить интервал, как он дал, будет ли это правильново всех других устройствах, как я могу объяснить ему, что он говорит неправильно

Пожалуйста, исправьте меня, я ошибаюсь или он ошибается

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вы должны учесть 3 вещи:

  1. Px - пропорции dp: Прочитайте этот ответ: https://stackoverflow.com/a/2025541/5884956 (фактически весь пост полезен)

  2. Процент не работает для вас: Что вы улучшаете, используя dp вместо px, так это для экранов с таким же aspect ratio и разные pixel density, макет выглядит точно так же (независимый пиксель dp-плотности). Это означает, что все внутри экрана будет выглядеть с одинаковыми пропорциями (кнопки, изображения, поля ... и т. Д.). Тогда вы могли бы представить, что все телефоны Android имеют одинаковое соотношение сторон (например, 16: 9). Это означает, что на каждые 16 dp высоты у них 9 dp ширины, или, другими словами, если вы разделите высоту телефона на ширину телефона, вы получите то же решение, что и 16/8. Но это далеко от реальности. Наиболее распространенным является формат 16: 9, но некоторые телефоны, такие как «Samsung Galaxy S8», имеют 18,5: 9 и имеют гораздо большее соотношение сторон: https://material.io/tools/devices/. Если вы работаете с%, время, когда вы видите свой дизайн в другом соотношении ваши элементы будут выглядеть растянутыми. И это не то, что нужно.

  3. Размер имеет значение К этому времени вы должны быть уверены, что dp - лучшее решение, если нет, то кто-то, возможно, улучшит мой ответ. Buuuuuut, так как размер экрана варьируется, число dp также делает. Так что для телефона больших размеров (даже для того же соотношения сторон) у нас больше дп. Затем вы должны работать, зная, что некоторые части будут растянуты (это должны быть промежутки между элементами и полями).

В идеале ( Android Studio должна сделать всю эту работу за вас ), работать с теми же aspect ratio, % of dp должно быть мерилом и при изменении соотношения сторон эти изменения должны быть отражены в промежутках между представлениями. Но это тяжелая работа.

TL; DR

  • Выберите стандартное устройство, которое дизайнеры собираются использовать для разработки (используйте обычное).
  • Скажите им, что дизайн не будет выглядеть одинаково для каждого устройства (если вы не создадите разную компоновку для каждого).
  • Они должны решить, какие части дизайна будут растянуть (растянуть пробелы и поля, пожалуйста, не кнопки или изображения).
  • Пусть они работают с px, они могут чувствовать себя более комфортно (тем временем вы должны преобразовать его в dp и работать с dp). Также, если вы выбираете устройство 'mdpi' dp = px.
  • Посмотрите на макеты, которые позволяют вам лучше работать с такого рода дизайн (я чувствую себя комфортно с ConstraintLayouts, но работая, вы заметите, что это не подходит для всех), но это ваше дело.

Дополнительная информация

https://developer.android.com/training/multiscreen/screensizes

0 голосов
/ 15 ноября 2018

Как говорили другие пользователи, px не является относительным измерением.В качестве примера приведем мобильный телефон с размерами экрана 5x10 см, модель имеет разрешение hdpi (480x854 px).Для этого устройства горизонтальное поле в 100px занимает более 20% ширины экрана.Но у нас также есть другой телефон с такими же размерами экрана (5x10 см), но этот более дорогой и имеет более высокое разрешение (xxhdpi -> 1080x1920 px).В этом случае горизонтальное поле в 100 пикселей не займет более 10% ширины экрана.Следовательно, необходим относительный размер, как dp.

. Возможным способом решения проблемы с вашим дизайнером может быть выбор устройства для выполнения проектов (обычное решение).Это полезная ссылка с некоторыми устройствами и их конфигурациями: https://material.io/tools/devices/.Я мог бы порекомендовать вам проектировать с использованием 720x1080 пикселей (xhdpi) как MotoG или Nexus 4. Для этого случая вам нужно только разделить на 2 значение px, которое он предоставляет вам, чтобы получить каждое значение dp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...