Я пойду дальше и не соглашусь с thinksteep здесь :) Я думаю, что новый макет действительно лучший вариант , если вам нужно выйти за рамки простого изменения размера (например, перемещение взглядов по отношению друг к другу).
Андроид API предназначен для обработки этого автоматически - у вас может быть каталог layout-land
и layout-port
с отдельными макетами для ландшафта и портрета соответственно, и система будет использовать то, что наиболее подходит.
Обратите внимание, что вам следует избегать использования отдельных макетов, если это возможно, - это в два раза больше работы для вас, чтобы поддерживать и тестировать их. Как правило, использование умных весов и соответствующих RelativeLayouts может сделать макет работы с любым разрешением.
Но в некоторых случаях вы действительно хотите переставить макет полностью на основе ориентации. В качестве случайного примера просмотрите текущую версию Google Music. В портрете большая часть экрана - обложка, с некоторой информацией внизу. В ландшафте левая половина - обложка, правая половина - информация.
Я также закрою ссылку на Android-документы - check this out. Это больше о нескольких размерах экрана, но он также охватывает пейзаж/портрет.
Я согласен с EboMike. Также изучите использование фрагментов. Вы можете повторно использовать одни и те же подвыборы в обеих ориентациях. Возьмем, к примеру, главное окно в приложении gmail. Чтобы использовать фрагменты перед Honeycomb, вам нужен пакет совместимости с Android: http://android-developers.blogspot.com/2011/03/fragments-for-all.html –
Хорошая точка. Фрагменты почти необходимы в этот момент. Существует пакет совместимости, для которого требуется только уровень API 4, поэтому ваше приложение будет работать практически на всех устройствах. – EboMike