본문 바로가기
안드로이드

안드로이드 다크모드 적용기

by 디지털노마더 2020. 7. 9.

다크모드는 Android 10 (API 레벨 29) 이상에서 제공됩니다.

 

* 다크모드의 장점

  • 전력 사용량을 상당히 절약할 수 있습니다(기기 화면 기술에 따라 다름).
  • 시력이 낮은 사용자와 밝은 빛에 민감한 사용자를 위한 가시성을 개선합니다.
  • 누구나 어두운 환경에서 쉽게 기기를 사용할 수 있습니다.

기존의 안드로이드 프로젝트에 다크모드를 적용하기 위해서는 우선 2가지 준비가 필요합니다.

 

첫째, values-night 폴더를 생성하여 내부에 values/color.xml 파일을 복사하여 붙여넣기.

 (일반모드 / 다크모드 : values / values-night)

 values-night/color.xml 에 정의한 <color>~</color> 태그 속성은 다크모드일 때 사용하려는 색상값을 지정해주면 됩니다.

 

왼쪽(일반) : values/color.xml         |      오른쪽(다크) : values-night/color.xml

 

둘째, values/style.xml에서 <style> 태그 내 parent 속성에 DayNight 테마를 상속하도록 처리

ex)

  <기존> : <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

  <변경> : <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">

 

간단히 준비는 끝났으니, 다크모드를 할당하고자 하는 레이아웃 요소(TextView, ListView, LinearLayout 등등)에

color 속성값을 정의해놓은 name 값을 할당한다.

 

ex) <TextView

      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      

      android:textColor="@color/background_color" />

 

프로젝트를 실행해보면 아래처럼 다크모드 ON/OFF에 따라 레이아웃 색상이 바뀌는 것을 확인할 수 있다.

댓글