이 과정에서는 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 }
자바
// 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 }
자바
View decorView = getActivity().getWindow().getDecorView(); // Calling setSystemUiVisibility() with a value of 0 clears // all flags. decorView.setSystemUiVisibility(0);