#android #screen
Вопрос:
Я пытаюсь найти в Интернете информацию о наложении экрана/рисовании поверх приложений в Android. Я знаю, что начиная с Android O,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY
является устаревшим.
Я хочу сделать вид наложения, как у Muviz Edge. Но я не могу найти, как рисовать под или над строкой состояния, как в этом приложении.
Как приложение Muviz может сделать это без использования
TYPE_SYSTEM_OVERLAY Flag
.
Ответ №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
)