Как мы можем получить размер экрана с надрезом сверху - PullRequest
0 голосов
/ 23 мая 2018

Есть некоторые устройства, такие как Huawei p20 (под управлением Android 8,8.1), который имеет встроенный notch в верхней части.Текущий способ получить размер экрана -

 Display display = getWindow().getWindowManager().getDefaultDisplay();
 Point screenSize = new Point();

 display.getRealSize(screenSize);
 //screenSize.x
//screenSize.y

И он выводит игру за пределы экрана.Итак, есть ли способ решить проблему надреза с устройствами Android P и Pre-p.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Строка состояния (где находятся все ваши уведомления) всегда подстраивается под глубину надреза.Посмотрите на пиксель 3, который имеет самую большую метку в мире: p Строка состояния становится такой же высокой, как метка.

enter image description here

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

0 голосов
/ 23 мая 2018

Существует только несколько устройств Android с опциями notch, и в настоящее время невозможно получить точный размер экрана таких устройств с помощью API Android.

НО есть обходной путь, вы можете проверить имяустройства и соответственно измените свой макет.

Существует одна популярная библиотека Android, чтобы получить рыночное название устройства Android.Проверьте больше информации здесь: https://github.com/jaredrummler/AndroidDeviceNames

Как использовать эту библиотеку:

String deviceName = DeviceName.getDeviceName();

Надеюсь, это поможет вам сосредоточиться на разработке, а не тратить время!

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