Android 我们怎样才能得到顶部有凹口的屏幕尺寸

Android 我们怎样才能得到顶部有凹口的屏幕尺寸,android,android-8.0-oreo,android-8.1-oreo,android-9.0-pie,Android,Android 8.0 Oreo,Android 8.1 Oreo,Android 9.0 Pie,有些设备,如华为p20(运行安卓8,8.1),其顶部内置notch。 当前获取屏幕大小的方法是 Display display = getWindow().getWindowManager().getDefaultDisplay(); Point screenSize = new Point(); display.getRealSize(screenSize); //screenSize.x //screenSize.y 它引领着游戏走出了银幕。那么,有没有办法解决android P

有些设备,如华为p20(运行安卓8,8.1),其顶部内置
notch
。 当前获取屏幕大小的方法是

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

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

它引领着游戏走出了银幕。那么,有没有办法解决android P和Pre-P设备的缺口问题呢

只有少数安卓设备具有
notch
选项,目前无法使用安卓API获得此类设备的确切屏幕大小

但有一个解决办法,你可以检查设备的名称,并相应地调整布局

有一个流行的Android库可以获取Android设备的市场名称。请在此处查看更多信息:

如何使用此库:

String deviceName = DeviceName.getDeviceName();
希望这能帮助你专注于发展,而不是浪费时间

状态栏(所有通知的位置)总是根据槽口的深度进行调整。看看像素3,它有世界上最大的凹口:p状态栏变得和凹口一样高

因此,只有当你的应用程序处于全屏状态(状态栏下方绘制内容)并且它可能覆盖了你的部分内容时,缺口才是一个问题。
让你的应用程序非全屏(只在状态栏下方绘制),你就不必担心将来会出现任何缺口。许多游戏忽略了内容中的状态栏

实际上,即使在Android 8.0上,也有多台设备带有notch。@SyedZainulAbedin,是的,但目前Android没有提供任何API来检查,因此我们只需要使用上述解决方法。@VicJordan我知道已经晚了,但您可以检查,但只有当您针对sdk 28时才有效,这会导致其他问题。它为我打破了一些旧的密码。