ꡬκΈμμ μ 곡νλ κ΅μ‘μλ£λ₯Ό μ 리νκΈ° μν ν¬μ€νΈμ λλ€.
κ° μ€νμΌ μ§μ λ°©λ²μ μ°μ μμλ₯Ό μμ½ν©λλ€. μλ₯Ό λ€μ΄ Themeμμ ν μ€νΈ ν¬κΈ°λ₯Ό 18sp, Styleμμ 16sp, Viewμμ μ§μ 14spλ‘ μ€μ ν©λλ€. μμ±μ Themeλ Styleμμ μ μλ κ²λ³΄λ€ μ°μ λκΈ° λλ¬Έμ μ΅μ’ μ μΌλ‘ 14spλ‘ νμλ©λλ€.
Activity
λ΄ λͺ¨λ ν
μ€νΈμ κΈ°λ³Έ κΈκΌ΄ μ€μ .res/values/themes.xml νμΌμμ <style>
νκ·Έλ₯Ό μ¬μ©ν΄μ ν
λ§λ₯Ό μ μν©λλ€.
<style name="Theme.MyApp" parent="Theme.MaterialComponents.Light">
<item name="colorPrimary">@color/orange_500</item>
<item name="colorPrimaryVariant">@color/orange_700</item>
<item name="colorSecondary">@color/pink_200</item>
<item name="colorSecondaryVariant">@color/pink_700</item>
...
</style>
AndroidManifest.xmlμμ μ¬μ©ν λ
<manifest ... >
<application ... >
<activity android:theme="@style/Theme.MyApp" ... >
</activity>
</application>
</manifest>
layout fileμμ μ¬μ©ν λ
<ConstraintLayout β¦
android:theme="@style/Theme.MyApp">
νΉμ 리μμ€ λμ ν λ§ μμ±μ μ§μ μ°Έμ‘°νμ¬ λ³΄λ€ μ μ°ν λ μ΄μμκ³Ό μ€νμΌμ μ μν μ μμ΅λλ€.
layout fileμμ μ¬μ©ν λ
<LinearLayout β¦
android:background="?attr/colorSurface">
?attr/themeAttributeName ꡬ문 μ¬μ©.
?attr/colorPrimary
?attr/colorPrimaryVariant
ν
λ§μ λ²μλ₯Ό κ΄λ²μν View
λ° ViewGroup
μ§ν©μ μ μ©νλ κ²μ μ΄ν΄λ΄€μ΅λλ€. λ³΄λ€ μ’μ λ²μμ View
μμ μκ°μ μμ±μ μ μνλ €λ©΄ μ€νμΌμ μ¬μ©ν μ μμ΅λλ€.
res/values/styles.xml νμΌμ μ μν©λλ€.
<style name="DescriptionStyle">
<item name="android:textColor">#00FF00</item>
<item name="android:textSize">16sp</item>
...
</style>
λ μ΄μμ νμΌ λ΄μμ μ€νμΌ μμ±μ μ§μ νμ¬ View
μ μ μ©ν©λλ€.
<TextView
style="@style/DescriptionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/description_text" />
μ€νμΌ λ΄μμλ ν λ§ μμ±μ μ°Έμ‘°ν μ μμ΅λλ€.
<style name="DescriptionStyle">
<item name="android:textColor">?attr/colorOnSurface</item>
<item name="android:textSize">16sp</item>
...
</style>
μ±μλ κ°κΈ° λ€λ₯Έ μ₯μΉ κ΅¬μ±μ λ§κ² μ¬λ¬ 리μμ€ μ§ν©μ΄ ν¬ν¨λ μ μμ΅λλ€. μ¬μ©μκ° μ±μ μ€ννλ©΄ Androidλ κΈ°κΈ°μ κ°μ₯ μ λ§λ 리μμ€λ₯Ό μλμΌλ‘ μ ννκ³ λ‘λν©λλ€.
μ± μ 체μμ μμμ μ΄λ¦μ μ§μ νκ³ νμ€ννλ λ°©λ².
res/values/colors.xml νμΌμμ μ€μ .
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
...
</resources>
#AARRGGBB νμμ 16μ§μ μμμΌλ‘ μ§μ ν©λλ€.
λ μ΄μμμμ μμΉ κ°μ μ΄λ¦μ μ§μ νκ³ νμ€ννλ λ°©λ².
res/values/dimens.xml νμΌμμ μ€μ .
<resources>
<dimen name="top_margin">16dp</dimen>
</resources>
λ μ΄μμμμλ @dimen/<name>
μΌλ‘, μ½λμμλ R.dimen.<name>
μΌλ‘ μ°Έμ‘°ν©λλ€.
<TextView β¦
android:layout_marginTop="@dimen/top_margin" />
<TextView
...
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline1"
android:text="@string/title" />
<TextView
...
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:text="@string/body_text" />
κΈ°μ‘΄ μ€νμΌμ μμνκ³ νμν λΆλΆμ μμ ν μλ μμ΅λλ€.
<style name="TextAppearance.MyApp.Headline1"
parent="TextAppearance.MaterialComponents.Headline1">
...
<item name="android:textStyle">normal</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">64sp</item>
<item name="android:letterSpacing">0</item>
...
</style>
ν λ§μμ μλ‘μ΄ μ€νμΌμ μ¬μ©ν μ μμ΅λλ€.
<style name="Theme.MyApp" parent="Theme.MaterialComponents.Light">
...
<item name="textAppearanceHeadline1">@style/TextAppearance.MyApp.Headline1</item>
...
</style>
μ¬μ©μμ μΈμ΄μ λ¬Ένμ λ°λΌ λ체 리μμ€λ₯Ό μ 곡ν μ μλ κΈ°λ₯.
<resource type>-b+<language code>[+<country code>]