시스템 표시줄 어둡게 하기

이 과정에서는 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);