본문 바로가기
개발/Android

[안드로이드 앱 개발] 다크테마에 맞춰 자동으로 색상 바꿔주기

by 즐거운 개발 인생 2022. 1. 20.
728x90
반응형

[안드로이드 앱 개발] 다크테마에 맞춰 자동으로 색상 바꿔주기

[android app develop] Automatically change colors to match the dark theme


안드로이드에서 지원하는 다크 테마를 시스템 설정에 따라 자동으로 변경되게 하기 위해서 colors.xml(night) 파일이 우선 필요합니다.

 

colors.xml(night) 파일은 프로젝트 생성시 자동으로 추가되지 않으므로 만들어주여야 합니다.

 

Project로 변경해주면 values 폴더에 colors.xml 파일이 있기만 values-night 폴더에 colors 파일이 없는 걸 확인하실수 있습니다.

 

Dark theme에 자동적용될 색상을 만들기 위해 values-night 폴더에 마우스 우클릭하시고 New > Value Resource File을 누르고 file name은 colors로 입력하고 ok를 눌러줍니다.

 

value-night 폴더에 colors 파일이 추가되고 텅빈 colors 파일이 열립니다.

 

project를 다시 Android로 바꿔보면 values > colors에 colors.xml 과 colors.xml(night) 파일이 있는 걸 확인할 수 있습니다.

 

눈치 채셨겠지만 colors에서는 기본 색상이면서 light 모드일때의 색상을 관리합니다.

 

colors(night)에서는 dark 모드일때의 색상을 관리합니다.

 

 

 

이제 드디어 다크 테마에 자동으로 변경되는 색상을 다룰 준비가 완료 되었습니다.

 

우선적으로 color.xml 파일에 색상을 등록합니다.

 

colors.xml과 color.xml(night)에 동일한 이름으로 색상을 만들어줍니다.

 

colors.xml에는 white색상을 colors.xml(night)에는 살짝 밝은 검정색을 지정해줍니다.

 

 

 

색상을 바꾸고 싶은 곳에 색상을 지정해주고 구동을 해보면 같은 이름의 색상이지만 시스템 설정에 따라 light모드와 dark 모드의 색상이 변경되는 걸 확인 할 수있습니다.

 

 

 

이때 주의할 점은 color.xml에는 생성하지 않은 color를 color.xml(night)에만 등록하면 오류가 뜹니다.

 

다크 테마를 지정할때는 color와 color(night) 파일에 동일한 명칭으로 색상을 각각 다르게 입력해야합니다.

 

colors(night)에는 색상을 추가하지 않고 color에만 색상을 추가하고 사용하면 다크모드에서도 동일한 색상이 뜹니다. 다크모드에 색상을 변경하지 않을 경우엔 color.xml(night)에 굳이 색상을 추가하지 않아도 됩니다.

 

728x90
반응형

댓글