Как получить правильные размеры экрана для телефона Android с надрезом - PullRequest
0 голосов
/ 31 мая 2019

Я делаю игру для Android с использованием Java, мне нужно сопоставить размеры экрана игры с размерами экрана устройства, я использовал следующий код для получения размеров экрана устройства

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width=dm.widthPixels;
int height=dm.heightPixels;

Я сталкиваюсь с проблемой с новыми устройствами с меткой, приведенный выше код дает мне высоту экрана, отличную от фактического устройства, например, фактическая высота устройства составляет 2340 пикселей, но код вернул 2130 пикселей, я использовал следующий код, чтобы получить меткувысота

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
    DisplayCutout displayCutout = getWindow().getDecorView().getRootWindowInsets().getDisplayCutout();
    if (displayCutout.getBoundingRects().size() > 0) {
        Rect notchRect = displayCutout.getBoundingRects().get(0);
    }
}

, что равно 80, теперь 2130 + 80 равно 2210, при отображении игрового экрана на экран устройства по-прежнему не хватает 130 пикселей, из-за неправильной высоты происходит смещение

1 Ответ

0 голосов
/ 05 июня 2019

До сих пор нет способа получить реальные размеры экрана с надрезом

...