[android] 안드로이드 리소스 테마 및 스타일

안드로이드 앱을 개발할 때 UI 디자인을 관리하기 위해 테마와 스타일을 사용합니다. 테마는 앱 전체에 적용되는 속성의 모음이며, 스타일은 특정 요소에 적용되는 속성의 모음입니다. 안드로이드에서는 리소스를 사용하여 테마와 스타일을 정의하고 적용합니다.

테마 (Theme)

안드로이드 앱의 테마는 앱의 전반적인 디자인을 정의하는 데 사용됩니다. 테마는 앱의 기본 색상, 글꼴, 상태 표시줄 스타일, 액션 바 스타일 등을 정의할 수 있습니다.

예를 들어, 앱 전체의 기본 색상을 설정하거나, 어두운 모드와 밝은 모드의 디자인을 다르게 설정할 수 있습니다.

안드로이드에서는 res/values/styles.xml 파일에 테마를 정의하고, AndroidManifest.xml 파일에서 앱에 테마를 적용합니다.

<!-- res/values/styles.xml -->
<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="colorPrimary">#3F51B5</item>
        <item name="colorPrimaryDark">#303F9F</item>
        <item name="colorAccent">#FF4081</item>
    </style>
</resources>
<!-- AndroidManifest.xml -->
<application
    android:theme="@style/AppTheme"
    ...
    >
    ...
</application>

스타일 (Style)

안드로이드 앱의 스타일은 특정한 UI 요소에 적용되는 디자인을 정의할 때 사용됩니다. 예를 들어, 버튼, 텍스트뷰, 리사이클러뷰 등의 디자인을 일괄적으로 변경하거나 재사용할 수 있습니다.

스타일은 특정한 View나 ViewGroup에 android:theme 속성이나 style 속성으로 적용됩니다.

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/PrimaryButton"
    />
<!-- res/values/styles.xml -->
<resources>
    <style name="PrimaryButton" parent="Widget.AppCompat.Button">
        <item name="android:background">#3F51B5</item>
        <item name="android:textColor">#FFFFFF</item>
    </style>
</resources>

결론

안드로이드 리소스를 효율적으로 활용하여 테마와 스타일을 정의하고 적용함으로써 일관된 디자인을 유지하고 UI를 관리할 수 있습니다. 테마와 스타일은 안드로이드 앱의 사용자 경험을 향상시키는 데 중요한 역할을 합니다.

또한, 테마와 스타일을 동적으로 변경하여 어두운 모드와 밝은 모드 등 다양한 테마를 지원함으로써 사용자의 선호도에 맞는 디자인을 제공할 수 있습니다.

참고 자료