0Pricing
Android Academy · Lesson

Themes & Styles

Define reusable Styles for widgets and Themes for your app. Set up Material 3 color roles, typography scale, custom fonts, and dark mode.

Styles vs Themes

Two concepts often confused:

  • Style — a collection of view attributes applied to a single widget (e.g., text size, color, padding). Set with style="@style/MyButton".
  • Theme — a collection of semantic attributes applied to an Activity or app. Views look up theme attributes with ?attr/colorPrimary.

Defining a Style

Create styles in res/values/styles.xml. Styles can inherit from a parent:

<!-- res/values/styles.xml -->
<resources>
    <style name="TitleText" parent="TextAppearance.Material3.HeadlineMedium">
        <item name="android:textColor">@color/on_surface</item>
        <item name="android:fontFamily">@font/roboto_bold</item>
    </style>

    <style name="PrimaryButton" parent="Widget.Material3.Button">
        <item name="android:paddingHorizontal">24dp</item>
        <item name="cornerRadius">8dp</item>
    </style>
</resources>

<!-- Using a style in XML: -->
<TextView
    style="@style/TitleText"
    android:text="Hello!" />

All lessons in this course

  1. Material Design Basics
  2. Themes & Styles
  3. Custom Views
  4. Animations & Transitions
  5. Bottom Navigation & Tabs
← Back to Android Academy