我正在寻找一种方法来确定Android设备是否具有带圆角的屏幕,理想情况下也是半径。
我的用例是一个由单个全屏OpenGL视图组成的游戏。它渲染一些靠近边缘和边界的UI元素,为游戏本身提供尽可能多的区域。但是当屏幕有圆角时,它们会被部分隐藏,所以它们需要以不同的方式定位。
答案 0 :(得分:5)
Android S
Developer Preview 通过 WindowInsets.getRoundedCorner(int position)
添加了 RoundedCorner
API。它提供了每个圆角的中心点和半径。
参考:https://developer.android.com/about/versions/12/features#rounded_corner_apis
答案 1 :(得分:0)
目前(2018年5月7日)您只能使用isRounded()方法检查物理屏幕是否为圆形(对于Android Wear)但是无法检查屏幕边角是否已四舍五入。
我认为只有少数设备有圆角。因此,只需检查设备名称并相应调整布局即可。
有一个流行的Android库可以获得Android设备的市场名称。点击此处查看更多信息:https://github.com/jaredrummler/AndroidDeviceNames
<强>用法:强>
String deviceName = DeviceName.getDeviceName();
希望此解决方法可以暂时帮助您。
将来所有设备都可能会发布圆角屏幕(只是一个假设)。