Как установить ориентацию в двух разных режимах, в двух макете? - PullRequest
0 голосов
/ 02 июля 2011

У меня есть макет, который называется Main.XML, и я установил ориентацию на портрет в моем AndroidManifest.xml.Я также разработал этот макет для Honeycomb и поместил его в папку layout-xlarge-mdpi, но я хочу использовать Main.XML в layout-xlarge-mdpi только в альбомной ориентации.

Теперь, как это можно сделать?

Спасибо

Ответы [ 4 ]

5 голосов
/ 02 июля 2011

Вы можете поместить main.xml в layout-xlarge-land, тогда он будет использоваться только в альбомной ориентации
См. Поддержка нескольких экранов (с использованием определителей конфигурации)

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

Редактировать: если вы предоставляете main.xml in layout папка и еще один main.xml в layout-xlarge-land, затем

  • для extra large landscape orientation потребуется main.xml from layout-xlarge-land

  • для all other, that is in landscape or portrait orientation потребуется main.xml from layout

См. Предоставление альтернативных ресурсов для получения более подробной информации

2 голосов
/ 02 июля 2011

Создайте папку layout-xlarge-mdpi-land и поместите main.xml в эту

1 голос
/ 02 июля 2011

В AndroidManifest вставьте следующий код в любое действие, которое вы хотите запустить в ландшафтном режиме (в данном случае Основное действие)

android:screenOrientation="landscape"
1 голос
/ 02 июля 2011

Я думаю, что это можно сделать так:

  1. Определение размера экрана программно в вас при создании. http://www.mail-archive.com/android-developers@googlegroups.com/msg144381.html

  2. Установить ориентацию в соответствии с размером экрана, например:

    if (размер экрана большой) setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); еще setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Не уверен, что это лучший способ.

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