Подтвердить что ты не робот

Как вы делаете макеты для нескольких размеров экрана Android?

Я провел некоторое исследование по созданию макетов, которые работают для нескольких размеров экрана, и я ищу некоторые пояснения.

Можно ли просто сделать отдельный файл макета для каждого из трех размеров экрана (маленький, средний, большой) или вы можете выполнить это с помощью более простого метода?

Я тестировал свои проекты на большом экранном устройстве, и хотя я использую DIP (независимые от плотности пиксели) для отступов, полей и т.д., он все еще царапает материал, когда я просматриваю его на меньших экранах. Должен ли я разрабатывать свои проекты для экранов среднего размера, а затем просто позволить Android масштабировать его соответствующим образом?

Я не уверен, что это хороший вопрос или нет, но я ищу то, что обычно используется для проектирования для нескольких размеров экрана. Что вы делаете?

Edit: В дополнение к этому, например, скажем, у меня есть кнопка, которая находится на 40dip выше нижней части экрана, если я буквально пишу 40dip, или я должен использовать какую-то математику пикселов, такую ​​как 40 * screenWidth/blahblah или что-то такое, чтобы оно масштабировалось в зависимости от размера экрана, который имеет пользователь? У меня ограниченный опыт работы с пользовательскими интерфейсами...

4b9b3361

Ответ 1

Есть две оси для рассмотрения, когда речь заходит о размере экрана: физическом размере и плотности. Плотность обрабатывается путем обеспечения измерений в провалах и масштабируемых ресурсах по мере необходимости. Но плотность не всегда означает размер или наоборот. См. http://developer.android.com/guide/practices/screens_support.html для получения дополнительной информации о механизме.

Не распространено или рекомендуется иметь разные макеты на основе каждого разрешения экрана, которое вы поддерживаете, но вполне разумно разрабатывать различные макеты для разных классов размеров (малых, средних, больших). Различные экраны различного размера могут быть полезны при добавлении, удалении или изменении положения некоторых элементов навигации в зависимости от приложения.

В определенном классе размера вы должны убедиться, что ваши макеты допускают отклонения в точном разрешении экрана. Как предложил Фальмарри, используйте относительные макеты, веса и другие инструменты, позволяющие вашему макету растягиваться изящно.

Ответ 2

Общее правило - использовать независимые от плотности пиксели (провалы) для определения размера в вашем макете xmls - я вижу, вы уже это сделали. Для этого у меня есть только макет для всего диапазона устройств. Что нужно расщепить, это графика. Для этого я использую 3 разных доступных каталога: "drawable-ldpi", "drawable-mdpi" и "drawable-hdpi". Это делается для того, чтобы изображения имели одинаковый размер (скажем, в миллиметрах) при различных плотностях экрана (при условии, что размер экрана один и тот же - нормальный, например) их следует масштабировать следующим образом:

  • drawable-hdpi: 150%
  • drawable-mdpi: 100%
  • drawable-ldpi: 75%

Возможно, это плохой совет. Однако, если вы посмотрите на Google таблицу размеров и плотности экрана, вы можете решить не вкладывать дополнительные усилия в тщательное тестирование для больших экранов, поскольку на рынке таких устройств почти нет.

Ответ 3

Никакая раздельная компоновка не является обычной практикой. Только когда у вас есть изображения, которые невозможно растянуть, это действительно рекомендуемый способ.

Материал всегда будет выглядеть немного растянутым/сжатым при просмотре на устройствах с меньшими/большими экранами. Такое определение экрана другого размера. Вы должны просто использовать относительные макеты и андроид управлять конкретными номерами пикселей.