Как получить высоту DisplayCutout для отверстия камеры в эмуляторе?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как получить высоту DisplayCutout для отверстия камеры в эмуляторе?

Сообщение Anonymous »

Я создаю полноэкранное приложение и столкнулся с ситуацией, когда элементы управления могут быть частично закрыты вырезом камеры. Такая ситуация возникает в эмуляторе последних моделей Google Pixel. Мне пока не удалось проверить это на физическом устройстве.
Я пробовал разными способами узнать размер выреза дисплея, но всегда получал значение DisplayCutout, равное нулю.
Я Я делаю что-то не так? Или это особенность эмулятора, которая не показывает на экране вырез для отверстия камеры?
Вот пример кода внутри функции OnCreate, с которым я пытался (безуспешно) чтобы узнать размер DisplayCutout:

Код: Выделить всё

getWindow().getDecorView().setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
@Override
public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
DisplayCutout cutout = insets.getDisplayCutout();
if (cutout != null)
Log.d("mytag", "left= " + cutout.getSafeInsetLeft());
else Log.d("mytag", "Cutout is null");
}
else Log.d("mytag", "Old API");
return insets;
}
});
В журнале всегда указывается, что «Cutout имеет значение null».
Я также попробовал другой подход, присвоив LayoutInDisplayCutoutMode значение LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER. Но это не сработало, вырез камеры продолжал закрывать элементы управления.
Пожалуйста, направьте меня на правильный путь.

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-emulator
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»