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

Где разница в android.max_aspect?

Недавняя blog объясняет, что мы должны использовать

<meta-data android:name="android.max_aspect" android:value="2.1" />

в <application> элемент AndroidManifest.xml для оптимального отображения на супер широкоэкранных устройствах, например. Samsung Galaxy S8.

Чтобы протестировать это, я установил приложение (без max_aspect, no resizeableActivity flags; targetSdkVersion=22, compileSdkVersion=24) на Android 7.1.1. эмулятор с пользовательским разрешением 2960x1440. Все действия, включая погружение, заполняют экран без полей, как показано в сообщении в блоге.

Я добавил явный

<meta-data android:name="android.max_aspect" android:value="1.5" />

и это также не повлияло на эмулятор.

Итак, вопрос: этот мета-флаг проверяется только на реальных устройствах, или есть какая-то конфигурация, которую я пропустил для своего эмулятора?

Обновление: Я пытался связаться с Neto Marin, автором цитируемого сообщения в блоге. Я нашел гордый твит ] о своих вклад в глобальное сообщество Android Dev, но не смог получить от него ответа.

4b9b3361

Ответ 1

Итак, через 2 месяца и множество попыток воспроизвести эффект почтового ящика, по вашему и более уважаемым членам сообщества, p >

Хорошо, я обстрелял $$$ для Galaxy S8, и я не могу воспроизвести эффект почтового ящика. Я пробовал настройку android: resizeableActivity = "false", либо на, либо на - ни один из них не имел эффекта. Я попытался вручную добавить, что также не повлияло. Я попытался сбросить targetSdkVersion на 23, что также не повлияло. Каковы шаги, чтобы проект воспроизводил эффект почтового ящика? Лично мне совершенно комфортно с тем, что я вижу (активность заполняет экран как обычно), но он идет вразрез с этой записью в блоге разработчиков Android, поэтому я пытаюсь выяснить, устарела ли эта публикация или что Мне не хватает.

Я считаю, что мы можем поднять руки и объявить dev. блог статья поддельные новости.

TL; NR: еще не было обнаружено устройство, для которого не объявление метаданных max-aspect может помешать приложению воспользоваться преимуществами большего (более широкого) экран. Никаких доказательств таких проверок можно найти на AOSP.

Я получу этот ответ, если ситуация изменится или я получу некоторые разъяснения.

Ответ 2

android.max_aspect только делает разницу, если ваш android: resizeableActivity неверен. Если ваш целевой API-интерфейс приложения равен 24 или выше, для Android: resizeableActivity устанавливается как истина.

Примечание. Нет необходимости устанавливать максимальное соотношение сторон, если для атрибута activity android: resizeableActivity установлено значение true. Если ваше приложение нацелено на уровень API 24 или выше, этот атрибут по умолчанию равен true. Дополнительные сведения см. В разделе Настройка вашего приложения для многооконного режима.

Обратитесь к документации.

Ответ 3

Вы должны установить соотношение сторон эмулятора в соответствии с вашими потребностями.

Попробуйте выполнить следующие действия:

In Android Studio, open AVD Manager
Create Virtual Device
    New Hardware Profile
    Set name: "18:9 aspect ratio screen"
    Set resolution: 1080 x 2160
    Finish
Select "18:9 aspect ratio screen"
Next
Select system image Nougat (API Level 25)
Next
AVD Name: "API Level 25 Nougat 18x9 aspect ratio screen"
Finish

Затем запустите этот эмулятор.

Если вы не установили значение, а android:resizeableActivity - неверно, максимальное соотношение сторон по умолчанию равно 1,86 (примерно 16: 9), и ваше приложение не будет использовать дополнительное пространство экрана.

Вам не нужно устанавливать максимальное соотношение сторон, если для атрибута activity android:resizeableActivity установлено значение true. Если ваше приложение нацелено на уровень API 24 или выше, этот атрибут по умолчанию равен true.