查找屏幕是否有圆角

mic*_*srb 14 android android-layout

我正在寻找一种方法来确定Android设备是否具有带圆角的屏幕,理想情况下也是半径.

我的用例是一个由单个全屏OpenGL视图组成的游戏.它渲染一些靠近边缘和边界的UI元素,为游戏本身提供尽可能多的区域.但是当屏幕有圆角时,它们会被部分隐藏,所以它们需要以不同的方式定位.

Vik*_*ngh 5

截至 2019 年 6 月 6 日更新

Android 正式支持运行 Android 9(API 级别 28)及更高版本的设备上的显示剪切。

参考: https: //developer.android.com/guide/topics/display-cutout/

目前(2018年5月7日)您只能使用方法检查物理屏幕是否圆角(适用于Android Wear),[isRounded()][1]而无法检查屏幕角是否圆角。

我认为只有少数设备具有圆角。因此,最好只检查设备名称并相应地调整布局。

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

用法:

String deviceName = DeviceName.getDeviceName();
Run Code Online (Sandbox Code Playgroud)

希望这个解决方法能暂时帮助您。

也许未来的所有设备都将发布圆角屏幕(只是一个假设)。

  • 不过,显示切口不包含有关圆角的信息。它仅提供凹口等形状。 (6认同)

roc*_*cko 5

Android SDeveloper Preview 添加了一个RoundedCornerAPI,通过WindowInsets.getRoundedCorner(int position). 它提供每个圆角的中心点和半径。

参考:https : //developer.android.com/about/versions/12/features#rounded_corner_apis