2012-04-09 1 views
0

Я разработал приложение для Android, графический интерфейс которого предназначен для небольших экранов. При запуске на планшете это выглядит мусором, потому что я предположил ширину 320dp, чтобы облегчить мне жизнь - у меня нет ресурсов для тестирования на планшетах.Отсутствует опция Android Tablet Zoom

Люди, использующие Android 3.2, смогли увеличить масштаб приложения, поэтому похоже, что он работает на большом телефоне. Но после моего последнего обновления эта опция недоступна, и я не понимаю, почему.

Изменение связано с файлом манифеста. Вот что мое оригинальное приложение было (ничего не делать с экранами в моем Manifest):

<uses-sdk android:minSdkVersion="7" /> 

После обновления моей среды разработки, я получил предупреждение о том, следует указать целевую SDK, так что я сделал это:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10" /> 

Использование мучительно медленного эмулятора Android 3.2 Я подтвердил, что это вызвало проблему. Я думал, что любой целевой SDK ниже 11 не повлияет на параметр масштабирования?

Используя следующие также удалить опцию масштабирования:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="9" /> 

Но это не сделал:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="8" /> 

Так настройки моей целевой SDK 8 обходной путь, но это тоже неправильно, потому что я используйте версию 2.3.3 для тестирования.

Я что-то упустил? Есть ли лучшее решение?

Спасибо.

ответ

2

Try установки targetSdkVersion в 9 (или 10) и добавления <supports-screens android:xlargeScreens="false" /> к вашим AndroidManifest.xml (документы для supports-screens). Это сообщает системе, что ваше приложение явно не поддерживает экраны xlarge и что оно должно предлагать параметр масштабирования/масштабирования совместимости для пользователей, которые используют приложение на устройствах xlarge. Обратите внимание, что это не заставляет приложение скрываться от устройств xlarge в Play Маркете (supports-screens только заставляет Play Store фильтровать приложения с меньших экранов, если они предназначены для работы на больших экранах, а не наоборот).

Причина, по которой я думаю, что это происходит, когда вы устанавливаете targetSdkVersion в 9+, потому что поддерживаемые экраны xlargeScreens были добавлены в API-уровень 9 и, как мне кажется, по умолчанию используется значение true (по крайней мере для уровня API 9+). Как только xlargeScreens верен, система отключит режим масштабирования/масштабирования совместимости.

Поддерживающие документы (где он действительно говорит это, но довольно запутанная):

+0

Я попытался добавить 'поддержки-screens' деталь, но он не был распознан, потому что мое приложение построено против 2.1 SDK; Я думаю, мне нужно построить против 2.3, чтобы использовать это? Могу ли я это сделать и по-прежнему поддерживать 2.1? – Fish

+1

Да, вы должны строить против той же версии, что и targetSdkVersion.вам просто нужно быть осторожным, чтобы вы не использовали вызовы API из более ранних версий, не проверяя сначала уровни API (новый инструмент Android Lint имеет правило, помогающее идентифицировать это). – AdamK

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