Наложение краев рисования на Android

#android #screen

Вопрос:

Я пытаюсь найти в Интернете информацию о наложении экрана/рисовании поверх приложений в Android. Я знаю, что начиная с Android O,

WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY

является устаревшим.

Я хочу сделать вид наложения, как у Muviz Edge. Но я не могу найти, как рисовать под или над строкой состояния, как в этом приложении.

Как приложение Muviz может сделать это без использования

TYPE_SYSTEM_OVERLAY Flag .

Наложение приложения Muviz Edge

Это мое наложение, левый верхний текст красного цвета находится за строкой состояния

Ответ №1:

Я получил свой собственный ответ после нескольких часов поиска в Интернете и тестирования различных возможных флагов

WindowManager.Параметры компоновки

И я понял, что ищу не в том направлении.

Для того чтобы нарисовать весь экран, четвертый параметр

 WindowManger.LayoutParams
 

должно быть

  WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
 

вместо других флагов.

Полный код для параметра Компоновки оконного менеджера выглядит следующим образом

 val LAYOUT_FLAG: Int
    LAYOUT_FLAG = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
    } else {
        WindowManager.LayoutParams.TYPE_TOAST
    }
    params = WindowManager.LayoutParams(
        WindowManager.LayoutParams.MATCH_PARENT,
        WindowManager.LayoutParams.MATCH_PARENT,
        LAYOUT_FLAG,  
        WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                or WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
        PixelFormat.TRANSLUCENT
    )