如何获得设备的切口切口类型?
编辑:由于我的问题对每个人都不清楚(尽管我很清楚):我正在寻找包含设备抠出类型的标志或枚举。
它看起来像:“ CutoutType_Corner”。
我不确定是否存在这样的枚举,我很确定确实存在。

您可以获取所有侧面的安全边缘插图,以确保凹口(如果有)没有覆盖UI的任何部分。 (仅当您通过设置窗口标志LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES来启用应用程序以同时在缺口的左侧和右侧填充给定空间时,这才很重要。)

在android开发人员选项中,您可以通过以下方式进行模拟显示:


(没有)
角落展示开孔
(双屏显示)
高大的显示窗


这些选项仅用于模拟,但它们提供的信息也一样,就我所知,该设备确实具有所选的切口,因此也应该有一种查找设置类型的方法。

在我的情况下,大多数UI(但在许多情况下通常也是)在水平方向居中,而没有真正触及屏幕的各个角落。

我想区分“角”和“高”切口,因为在我的案例中,拐角并没有真正占据屏幕的重要部分。 ->如果屏幕是切角,则可以忽略安全边缘插图。

举一个直观的例子:上方的屏幕来自三星Galaxy S10,带有一个角部切口,下方的屏幕是具有高切口的Google Pixel 3:

java - 在Android上查找缺口切口类型-LMLPHP

“ -Example-”适合安装在角落的开孔屏幕上,同时被高处的开孔覆盖。

谢谢!

最佳答案

当我尝试解决此任务时,我可以找到的唯一合适的API是DisplayCutout

val corners = view.rootWindowInsets?.displayCutout?.boundingRects


boundingRects返回每个角的抠图矩形,通过启发式方法,您可以了解您拥有哪种抠图类型。

10-02 23:22