2017-01-12 4 views
1

enter image description hereМогу ли я автоматизировать создание XML-макета для различных разрешений экрана в Android Studio?

Эта фотография по существу говорит обо всем. То, что я всегда делал, это вручную создавать разные типы макетов для различных устройств и разрешения экрана из одного исходного файла макета, переформатировать, пока я беспощадно копирую и вставляю, пока мои большие пальцы не начнут парить, то есть по умолчанию, -sw480dp, -больше, -xlarge, и т. д. в зависимости от потребностей моего приложения. Например, добавление поддержки -sw480dp через -sw720dp позволило некоторым из моих друзей с гораздо более старыми телефонами открыть мои приложения без какого-либо исключения NullPointerException, которое мешает им даже использовать его вообще. Тем не менее, это необычно утомительно иногда, особенно при внесении изменений в один файл макета, который вы хотите также отображать в каждой другой версии. Суть в том, что более поддерживаемые устройства означают более позитивные отзывы и меньше избыточных негативных отзывов для ваших приложений с течением времени.

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

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

Есть ли что-то, что я могу сделать, начиная с выделенного макета в приведенном скриншоте, автоматизирует процесс создания новых файлов макета в стиле тех, что ниже него? Я отказываюсь верить, что этот процесс действительно включает в себя все копии и переформатирование, которые я сейчас поглощаю. Cheers.

+0

Вам действительно нужны все эти варианты? В чем разница между ними? –

+0

Честно говоря, я не знаю, и это то, что я пытаюсь понять. Например, v21 поддерживает возвышение для панелей инструментов, тогда как v16 поддерживает шрифт sans-serif-light, а файл макета по умолчанию не поддерживает ни один из них. Я считаю предпочтительным иметь каждый из них для каждого определенного разрешения экрана, но, может быть, есть более быстрый, более автоматический способ достичь того же? Добавление поддержки для -sw480dp через 720dp также показало, что я не могу установить мое приложение даже из-за своего старого телефона. Интересно, что документация на Android отличная, но что делают дизайнеры. – santafebound

ответ

1

Вам действительно не нужно создавать все эти XML-файлы для каждого макета. Интересно, что Android автоматически регулирует размер экрана в соответствии с устройством. Но если экран слишком мал или разрешение слишком низкое, ваше содержимое xml может отображаться неправильно на таких устройствах. Для точности в вашей работе вы можете просто создать макет для небольшого, большого и особо большого экрана. Возможно, вам понадобится создать еще один xml, если вы хотите настроить ландшафтный режим. Эта ссылка вам поможет: https://developer.android.com/guide/practices/screens_support.html#support

1

Я обнаружил, что создание 4-х вариантов макета для каждой категории широкого размера (малый, средний, большой, х-большой) и позволяет системе Android обрабатывать остальные, действительно работают по всем направлениям.

В дополнение к использованию весов вложенные веса не должны становиться проблемой производительности, если вы используете от 2 до 3 слоев - вы можете динамически масштабировать свои фрагменты и просматривать компоненты, используя процентное соотношение ширины и высоты экрана устройства во время выполнения , Я отправлю пример кода позже.

Смежные вопросы