Android Study

Android Statusbar 설정 방법(색상, 이미지, 투명)

85chong 2024. 2. 19. 10:43
728x90
반응형
SMALL

 

* 준비물 : 투명색상 리소스 만들어주기R.color.color_translate

<?xml version="1.0" encoding="utf-8"?>
<resources>
    ...
    <color name="color_translate">#00000000</color>
    ...
</resources>

 

 

1. statusbar 백그라운드 뒤로 전체 스크린이 위치하면서 투명하게 만들기 : 

   - 아래의 코드 style 만들어서 AndroidManifest 에서 해당 페이지 Activity 에 적용하면 된다.

    <style name="FullStatusTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowTranslucentStatus">false</item>
        <item name="android:windowLightStatusBar">true</item>
    </style>

 

2. statusbar 색상 입히기 : 

   -  style 따로 설정 할건 없고,  아래의 코드로 색상을 지정하면 된다.

 

override fun onCreate(savedInstanceState: Bundle?) {
	   ...
       this.window.apply {
            statusBarColor = resources.getColor(R.color.color_translate,null)
       }
       ...
}

 

3. statusbar 글자 색상 검정 or 흰색으로 설정하기 : 

   - 아래의 isIconBlack == true : statusbar 폰트 색상 흰색

   - 아래의 isIconBlack == false : statusbar 폰트 색상 검정색

 

override fun onCreate(savedInstanceState: Bundle?) {
	   ...
       this.window.apply {
            WindowInsetsControllerCompat(this, this.decorView).isAppearanceLightStatusBars = isIconBlack.not()
       }
       ...
}

 

3. statusbar 에 drawable 이미지 설정하기 : 

override fun onCreate(savedInstanceState: Bundle?) {
	...
       this.window.apply {
           statusBarColor = resources.getColor(R.color.color_translate,null)
           setBackgroundDrawable(drawable)
           WindowInsetsControllerCompat(this, this.decorView).isAppearanceLightStatusBars = isIconBlack.not()
        }
       ...
}

 

 

 

- 끝 -