检测屏幕是否具有圆角

22

我正在寻找一种方法来确定Android设备是否具有圆角屏幕,最好还能确定圆角的半径。

我的用例是一个由单个全屏OpenGL视图组成的游戏。它在靠近边缘和边框处呈现一些UI元素,以便为游戏本身提供尽可能多的区域。但是当屏幕有圆角时,它们会被部分隐藏,因此需要将它们位置调整。


1
哪些设备具有圆角屏幕? - CommonsWare
例如Galaxy S8或Pixel 2 XL。 - michalsrb
也许这个 https://developer.android.com/reference/android/content/res/Configuration?hl=es#isScreenRound() - xstmpx
@SemkoToruj 这仅适用于Android Wear设备(具有真正的“圆形”显示屏) - Mdlc
也许是为了利用这一趋势,有些应用程序可以在任何Android设备上为您提供圆角。你想过这个吗?你可以在你的应用程序中保留一个手机和属性列表,并在检测到特定设备时进行相应处理。 - Jon Goodwin
2个回答

7

该API不返回屏幕的物理圆角,它是一个允许在您的活动中设置圆角的API。 - AlexandreS

5

截至2019年6月6日的更新:

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

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

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

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

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

用法:

String deviceName = DeviceName.getDeviceName();

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

也许未来所有的设备都会采用圆角屏幕(只是一种假设)。


6
显示屏上的切口并不包含关于圆角的信息,它只提供凹口等形状。 - gudvinr
1
不仅如此,而且有“要求”规定边缘只能有一个切口,这会使描述圆角的切口机制有些棘手。 - Dave Newton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接