我正在尝试确定DisplayCutout
(缺口)的位置。
Android 开发者博客,声明如下:
在 Android P 中,我们添加了 API,让您可以管理应用程序如何使用显示剪切区域,以及检查剪切是否存在并获取它们的位置。
所以我尝试获取切口的位置,这是我能够得到它的唯一方法:
if (SDK_INT >= Build.VERSION_CODES.P) {
DisplayCutout displayCutout = getWindow().getDecorView().getRootWindowInsets().getDisplayCutout();
if (displayCutout != null) {
List<Rect> bounding = displayCutout.getBoundingRects();
for (int i=0; i<bounding.size(); i++) {
Log.e("BoundingRect - ", ""+bounding.get(i));
}
}
}
在 Google Pixel 3XL 上运行上述程序时,它会返回Rect(442, 0 - 998, 171)
.
根据我所做的测试,这与:
442
- 切口开始的位置(在 x 轴上),距左侧 442 像素。
0
- 切口开始的位置(在 y 轴上),距顶部 0px。
998
- 切口结束的位置(在 x 轴上),距左侧 998 像素。
171
- 切口结束的地方(在 y 轴上),距离顶部 171 像素。
我的问题:由于DisplayCutout
API 不单独返回位置/坐标,从 ? 获取位置/坐标的最佳方法是String<Rect>
什么?
我能想到的唯一方法是使用 String's substring
,但这感觉“hackish”/不正确。