시스템 표시줄 어둡게 하기 (지원 중단됨)

이 과정에서는 Android 4.0 (API 수준 14) 이상에서 시스템 표시줄 (즉, 상태 및 탐색 메뉴)을 어둡게 하는 방법을 설명합니다. 이전 버전의 Android에는 시스템 표시줄을 어둡게 하는 방법이 내장되어 있지 않습니다.

이 접근 방식을 사용하면 콘텐츠 크기는 조절되지 않지만 시스템 표시줄의 아이콘이 시각적으로 줄어듭니다. 사용자가 화면의 상태 표시줄이나 탐색 메뉴 영역을 터치하는 즉시 두 표시줄이 모두 완전히 표시됩니다. 이 접근 방식의 장점은 막대가 여전히 존재하지만 세부정보가 가려져서 표시줄의 손쉬운 접근성을 해치지 않으면서 몰입도 높은 환경을 만든다는 것입니다.

상태 표시줄과 탐색 메뉴 흐리게 만들기

다음과 같이 SYSTEM_UI_FLAG_LOW_PROFILE 플래그를 사용하여 상태 표시줄과 탐색 메뉴를 흐리게 만들 수 있습니다.

Kotlin

// This example uses decor view, but you can use any visible view.
activity?.window?.decorView?.apply {
    systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE
}

Java

// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

사용자가 상태 또는 탐색 메뉴를 터치하면 플래그가 지워지므로 막대가 더 이상 흐리게 표시되지 않습니다. 플래그가 지워졌을 때 막대를 다시 어둡게 하려면 앱에서 플래그를 재설정해야 합니다.

그림 1은 탐색 메뉴가 흐리게 표시된 갤러리 이미지를 보여줍니다 (갤러리 앱은 상태 표시줄을 어둡게 하지 않고 완전히 숨깁니다). 이미지 오른쪽 탐색 메뉴에 탐색 컨트롤을 나타내는 희미한 흰색 점이 있습니다.

시스템 표시줄

그림 1. 시스템 표시줄이 희미하게 표시됨

그림 2는 동일한 갤러리 이미지를 보여주지만 시스템 표시줄이 표시되어 있습니다.

시스템 표시줄

그림 2. 시스템 표시줄이 표시됨

상태 표시줄과 탐색 메뉴 표시하기

setSystemUiVisibility()로 설정된 플래그를 프로그래매틱 방식으로 삭제하려면 다음과 같이 하면 됩니다.

Kotlin

activity?.window?.decorView?.apply {
    // Calling setSystemUiVisibility() with a value of 0 clears
    // all flags.
    systemUiVisibility = 0
}

Java

View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);