Я пытаюсь определить положение 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), 442px слева.
0
- Где начнется вырез (по оси Y), 0px сверху.
998
- Где заканчивается вырез (по оси X), 998px слева.
171
- Где вырез заканчивается (на оси Y), 171px от вершины.
Мой вопрос: Поскольку API DisplayCutout
не возвращает позиции / координаты отдельно, wh at - лучший способ получить позиции / координаты из String<Rect>
?
Единственный способ, о котором я могу подумать, - это использовать String's substring
, но это выглядит как "hacki sh" / неправильный.