본문 바로가기
Android/Develop

[Android] 상태표시줄 색상 변경하기 2

by hyun's life_developer 2019. 9. 10.

 

 

안녕하세요 초보개발자 시아아빠입니다.

 

상태표시줄 색상 설정하기를 포스팅한 적이 있습니다.

 

getWindow()를 사용하여 statusBar의 Color을 set해주어 사용했었는데요.

 

오늘 알려드릴 상태표시줄 색상 설정법은! 

 

각 Activity마다 statusBar를 set해줄 필요없이 styles에서 설정해주는 방법인데요.

여기서 한 번 선언을 해주면 매번 statusBar의 color를 set해주지 않아도 상태표시줄의 색상을 바꿀 수 있습니다.

 

다만 한 화면의 상태표시줄 색상만 바꾸고 싶다면 저번에 포스팅 했던데로 getWindow()를 사용하여 set해주면

getWindow()를 이용하여 set해준 색상을 따라간답니다~!

 

우선 res에 가면  values가 있어요 values에 styles가 있습니다. (resources>values)

저같은 경우는 styles.xml도 3개를 넣었습니다. styles.xml과 styles.xml(v21), styles(v23) 버전을 맞춰준거에요.

 

자 여기 styles.xml에 들어가면 프로젝트 맨 처음 도화지 상태이신 분들은

 

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" 
    	parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

    ▲이렇게 되어 있으실 텐데요.

 

<item name="android:windowLightStatusBar">false</item>

<style>과 </style>사이에 이 부분을 추가해주세요.

추가하시게되면 빨간 줄이 그어져있을 수 있어요!!

 

그러면 Alt + Enter를 눌러주셔서 v23을 추가해주세요.

styles.xml(v23)이 생기게 될 겁니다.

 

그러고나서 styles.xml(v23)에

<resources>

    <style name="AppTheme"
        parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/main_theme</item>
        <!--API 23(6.0): Status Bar 색상 -->
        <item name="colorPrimaryDark">@color/main_theme</item>
        <!--API 23(6.0): Status Bar 글자색 변경 false(흰색), true(어두운색) -->
        <item name="android:windowLightStatusBar">false</item>
        <item name="colorAccent">@color/main_theme</item>
        <item name="android:windowBackground">@color/windowBackground</item>
    </style>

</resources>

 

이렇게 구현해주신 후 

<item name="colorPrimaryDark">여기에는 상태바 색상</item>

 

<item name="android:windowLightStatusBar">여기에는 나머지 글자색(false일 경우 흰색, true일경우 검은색)</item>

 

밝은 statusBar의 색상을 선택하셔서 글자색이 어두워야한다면

 

<item name="android:windrowLightStatusBar">요기에 true</item>

 여기서 true값을 주세요! statusBar의 글자 색상이 검은색으로 바뀌는 것을 보실 수 있습니다.

 

 

위에서 말씀드렸듯이 한 화면의 상태표시줄 색상만 바꾸고 싶다면

저번에 포스팅 했던데로 getWindow()를 사용하여 set해주면 getWindow()를 이용하여 set해준 색상을 따라간답니다~!

 

https://siadaddy-cordinglife.tistory.com/2

 

[Android]안드로이드 상태표시줄 색상 설정하기!

|초보개발자인 저는 구글링을 통해 3시간을 알아본 정보이지만 저와같은 초보자 분을 위해!! 얻은 정보를 공유할게요!! ​ ​ Status Bar, 즉 상태표시바의 색상을 지정해주는 거에요! 혹~~~시나 모르는 분들을 위..

siadaddy-cordinglife.tistory.com

 

 

도움이 되셨다면 하트 부탁드려요~!

 

 

댓글