Найдите тип вырезки на Android

Как я могу получить устройство с вырезом под вырез? РЕДАКТИРОВАТЬ: Поскольку мой вопрос не всем ясен (хотя я и был): я ищу флаг или какое-то перечисление, которое содержит тип выреза устройства. Это может выглядеть так: "CutoutType_Corner". Я не уверен, существует ли такое перечисление, я почти уверен, что это так.

Вы можете получить безопасные вставки краев для всех сторон, чтобы убедиться, что выемка (если есть) не закрывает какие-либо части пользовательского интерфейса. (Это важно только в том случае, если вы разрешите приложению также заполнять заданное пространство слева и справа от выемки, например, установив флаг окна LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES.)

В параметрах разработчика Android вы можете имитировать вырез экрана, выбрав одно из следующих значений:

  • (Никто)
  • Угловой вырез дисплея
  • (Двойной вырез дисплея)
  • Вырез для высокого дисплея

Эти параметры предназначены только для моделирования, но они также предоставляют такую ​​же информацию, как если бы устройство действительно имело выбранный вырез, насколько я могу судить, поэтому также должен быть способ найти установленный тип.

Большая часть пользовательского интерфейса в моем случае (но и в целом во многих случаях) центрирована по горизонтали, не касаясь углов экрана.

Я хотел бы различать "угол" и "высокий" вырез, поскольку в моем случае угол не занимает важных частей экрана.-> Если экран вырезан в углу, я могу пренебречь безопасными вставками края.

В качестве наглядного примера: верхний экран от Samsung Galaxy S10 с вырезом в углу, нижний - от Google Pixel 3 с высоким вырезом:

"-Example-" умещается на экране с вырезом в углу, в то время как он закрыт высоким вырезом.

Спасибо!

1 ответ

Когда я попытался решить эту задачу, единственный подходящий API, который я смог найти, это DisplayCutout:

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

boundingRects возвращает прямоугольник выреза для каждого угла, и с помощью эвристики вы можете понять, какой тип вырезов у ​​вас есть.

Другие вопросы по тегам