Status Bar에는 지정된 색만 넣을 수 있나?(상태바 색상 변경)

2024. 3. 5. 11:52개인 프로젝트

최근 수업을 듣다가 Status Bar의 색상을 변경하는 방법에 대해 배우게 되었습니다!

강사님께서 가르쳐주신 내용으로는 Status Bar의 색을 ToolBar의 색과 동일하게 만드는 것이었는데

 

문득 꼭 하얀색이나 또는 @color를 했을 때 제공되는 컬러만 쓸 수 있는 것인가? 라는 의문이 들었습니다

그래서 저는 제가 개인적으로 만들고 있는 프로젝트에선 Status Bar의 색상을

기본 버튼 색상과 동일하게 만들어 봐야겠다고 다짐했습니다!

 

이건 강사님께서 가르쳐 주신 내용인데

(themes.xml 파일에서 작성)

<!-- 상단 상태바 색상-->
        <item name="colorPrimaryDark">@color/material_dynamic_tertiary99</item>
        <!-- 상단 상태바에 나타나는 정보를 보여주도록 설정한다 상단 상태바의 색상이 밝은 색인지 여부를 설정한다-->
        <item name="android:windowLightStatusBar">true</item>

 

위의 코드를 보면 colorPrimaryDark란 이름으로 @color/material_dynamic_tertiary99 색상을 사용하고 있습니다.

저 색상은 현재 ToolBar의 색상과 동일하게 적용되어져 있습니다.

 

 

 

이건 제가 만들어 본 코드입니다!

1, colors.xml에서 색상을 이름으로 지정하기

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
    <color name="buttonColor">#FF61D8BE</color>
</resources>

위에 코드에선 buttonColor라는 이름으로 #FF61D8BE 컬러를 지정해주었습니다.

 

 

2, themes.xml에 적용하기

<!-- 상태바의 색상을 바꿔보자 -->
        <item name="colorPrimaryDark">@color/buttonColor</item>
        <item name="android:windowLightStatusBar">true</item>

위의 코드를 보면 colorPrimaryDark라는 이름으로 아까 colors.xml에서 만든 색상을 넣어주었습니다!

그러고 colors.xml에서 지정한 색상이 밝기 때문에 android:windowLightStatusBar 에 true를 주었습니다

(이를 하지 않으면 상태바에 정보가 표현되지 않습니다!)

 

 

 

상태바와 버튼의 색상이 같게 표시됩니다!!

 

 

느낀점 :

지금까진 StatusBar의 색상을 어떻게 수정해야 하는지 몰라서 매번 ToolBar 위엔 보라색 Status Bar가 존재 했었는데 이걸 수정해주니 어플의 퀄리티가 훨씬 살아나는 거 같아 기분이 좋고

어딘가 묵혀 있었던 답답함을 해소시킨 기분이 듭니다!

개발도 너무 재밌지만 이렇게 색상을 디자인 하는 것도 재밌고 앞으로는 개인 프로젝트를 통해 연습을 하더라도 하나하나 색을 다 바꿔서 만들어 보려고 합니다!!