상태바를 삭제하는 기능은 SDK 버전에 따라 다른 코드를 사용해야 하기 때문에 소개하기가 매우 어렵습니다. 여기서는 코드를 소개하기 보다는 status bar를 삭제하는 종류를 소개하는데 중점을 두었습니다.
제가 테스트한 환경은 아래와 같습니다.
Android Studio version 4.2.1 compileSdkVersion 30 defaultConfig { applicationId "copycoding.tistory.statusbar" minSdkVersion 19 targetSdkVersion 30 versionCode 1 versionName "1.0" |
일단 textview를 하나 만들어서 실행을 해 봅니다.
<TextView android:id="@+id/button" android:layout_width="match_parent" android:layout_height="321dp" android:text="Hellow" android:background="#CCCCCCCC" android:textAlignment="center"/> |
1. Status bar 삭제
상태바의 영역을 완전히 삭제하는 방법 입니다.
1.1 xml 이용
상태바 영역을 xml을 이용하여 삭제하는 방법입니다.
<!-- Customize your theme here. --> <item name="android:windowFullscreen">true</item> |
상태바가 사라지고 Title bar 와 콘텐츠 영역이 위로 올라갑니다.
1.2 java 이용
이번에는 java 코드를 이용하여 상태바 영역을 삭제하는 코드 입니다.
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); |
또는 다음과 같은 방법을 이용할 수 있습니다.
View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); |
2. Status bar 삭제/아이콘 유지
이번에는 상태바에 있는 아이콘들은 그대로 놓아두고 상태바 영역을 삭제하는 방법입니다.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window w = getWindow(); w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); } |
3. Status bar 사용
이번 예제는 상태바 영역을 삭제하지 않고 콘텐츠 영역을 확장하는 방법입니다.
표현이 정확하지 않겠지만 위에 있는 내용과 어떤 차이가 있는지 직접 보면 이해가 되실겁니다.
<item name="android:windowTranslucentStatus">true</item> |
4. Source code 위치
xml : res > value > themes.xml
파일에서 <!-- Customize your theme here. -->
이 코드 하단에 추가 합니다.
java : MainActivity.java > onCreate()
파일에서 setContentView(R.layout.activity_main);
이 코드 하단에 추가 합니다.
- copy coding -
'Android' 카테고리의 다른 글
[Android] HTML Tag 를 사용하여 text 표시 (0) | 2021.12.26 |
---|---|
[Android] 해상도별 drawable 폴더 생성 (0) | 2021.12.23 |
[Android] Title bar 삭제 하기 (0) | 2021.12.19 |
[Android] 앱 이름 변경 및 두줄로 표시 (0) | 2021.12.12 |
[Android] sqlite database 자체 삭제하기 (2) | 2021.08.22 |