#java #android #screen #screen-size
#java #Android #экран #размер экрана
Вопрос:
У меня Samsung Galaxy S20 .
Я запускаю этот код:
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
mScreenHeight = displayMetrics.heightPixels;
mScreenWidth = displayMetrics.widthPixels;
Я получаю:
mScreenHeight = 2201,0 mScreenWidth = 1080,0
В то время как разрешение экрана S20 составляет 1440×3200 в соответствии с этой страницей.
Такой большой разрыв — это не просто вопрос высоты строки состояния.
Как я могу получить реальный размер экрана в пикселях?
Спасибо!
Комментарии:
1. вы можете получить текущие режимы, поддерживаемые display, используя context.getDisplay().getMode() для получения текущего режима отображения. Вы также можете получить все поддерживаемые конфигурации с помощью context.getDisplay().getSupportedModes() и обратиться к этой документации для получения более подробной информации. получение высоты с использованием этого дисплея. Mode может помочь вам поддерживать режим dex в вашем приложении, поскольку, начиная с R, вы будете получать высоту и ширину вашего приложения только с помощью displaymetrics. обратитесь к ссылке: developer.android.com/reference/android/view /…
Ответ №1:
Последние устройства Galaxy S имеют настройку для изменения разрешения экрана. На S20 есть 3 варианта:
- WQHD : 3200×1440
- FHD : 2400×1080
- HD : 1600×720
Скорее всего, вы находитесь в режиме FHD . Несмотря на то, что устройство имеет реальный размер в пикселях 3200×1440, используемое окно программного обеспечения уменьшено, и это то, что дает вам объект DisplayMetrics.
Комментарии:
1. Большое спасибо! Звучит неплохо. Посмотрим на это… Сумасшедшее поведение идеально подходит для создания множества ошибок во многих приложениях…