[android] 데이터 바인딩을 사용하여 테마 변경

안드로이드 앱에서 사용자에게 어두운 모드와 밝은 모드를 선택하게 하는 것은 매우 중요합니다. 데이터 바인딩을 사용하면 테마 변경을 쉽게 구현할 수 있습니다.

데이터 바인딩 소개

데이터 바인딩은 안드로이드 앱의 UI 컴포넌트와 앱의 데이터 소스를 연결하는 기술입니다. XML 레이아웃 파일에서 직접 코드를 작성하여 UI 업데이트를 처리할 필요 없이 데이터 바인딩을 사용하여 레이아웃을 업데이트할 수 있습니다.

테마 변경하는 방법

먼저, res/values 디렉토리에 themes.xml 파일을 만듭니다. 여기에 어두운 모드 및 밝은 모드에 대한 테마를 정의합니다.

<resources>
    <style name="AppTheme.Light" parent="Theme.AppCompat.Light">
        <!-- 각종 속성들을 정의 -->
    </style>
    <style name="AppTheme.Dark" parent="Theme.AppCompat">
        <!-- 각종 속성들을 정의 -->
    </style>
</resources>

다음으로, res/layout 디렉토리에 activity_main.xml 레이아웃 파일을 만듭니다.

<layout>
    <data>
        <variable
            name="isDarkMode"
            type="Boolean" />
    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@{isDarkMode ? @color/black : @color/white}">
        <!-- 기타 뷰들을 정의 -->
    </LinearLayout>
</layout>

이제, 액티비티에서 뷰 바인딩을 설정하고 테마를 변경합니다.

ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.setIsDarkMode(isDarkMode);

위 코드에서 isDarkMode는 사용자가 선택한 어두운 모드인지 밝은 모드인지 여부에 따라 true 또는 false로 설정됩니다.

이렇게하면 데이터 바인딩을 사용하여 앱의 테마를 쉽게 변경할 수 있습니다.

안드로이드 데이터 바인딩에 대한 더 많은 정보는 공식 안드로이드 개발자 사이트에서 확인할 수 있습니다.