java - 如何获得带有缺口的 Android 手机的正确屏幕尺寸
问题描述
我正在使用Java为Android制作游戏,我需要将游戏屏幕尺寸映射到设备屏幕尺寸,我曾经使用以下代码来获取设备屏幕尺寸
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个像素,由于高度不正确而发生偏移
解决方案
到目前为止,还没有办法通过刘海获得屏幕的真实尺寸
推荐阅读
- java - 运行 Jar 文件时出错。IllegalStateException:未设置位置
- python - 如何仅打印输出的最大值
- python - Django表单cleaned_data完全缺少一个字段
- c# - 是否有内置方法可以拒绝 fo-DICOM 服务器上的某些 SOP 类?
- javascript - 为什么UNPKG可以免费使用,如果我过度使用会怎样?
- flutter - 如何在 InheritedWidget 中调用 setState 或更新值?
- c# - 在不尝试删除文件的情况下检查 FTP 删除权限
- ios - 滚动时水平移动全景背景
- reactjs - 如何从 xeogl 场景中获取 Gltf 数据?
- html - Odoo 11 - 网站页面中缺少