應用 AppCompat 主題

AppCompat 支援庫提供了使用 Material Design 規範構建應用程式的主題。活動擴充套件 AppCompatActivity 也需要一個父母為 Theme.AppCompat 的主題。

第一步是自定義主題的調色盤以自動為你的應用著色。
在你的應用程式的 res/styles.xml 中,你可以定義:

<!-- inherit from the AppCompat theme -->
<style name="AppTheme" parent="Theme.AppCompat">

    <!-- your app branding color for the app bar -->
    <item name="colorPrimary">#2196f3</item>
    
    <!-- darker variant for the status bar and contextual app bars -->
    <item name="colorPrimaryDark">#1976d2</item>

    <!-- theme UI controls like checkboxes and text fields -->
    <item name="colorAccent">#f44336</item>
</style>

除了具有深色背景的 Theme.AppCompat,你還可以使用 Theme.AppCompat.LightTheme.AppCompat.Light.DarkActionBar

你可以使用自己的顏色自定義主題。材料設計規範顏色圖表材質調色盤中有很好的選擇。500 顏色是初級的好選擇(本例中為藍色 500); 為暗色選擇相同色調的 700; 和一種來自不同色調的色調作為強調色。主要顏色用於應用程式的工具欄及其在概覽(最近的應用程式)螢幕中的輸入,用於著色狀態列的較暗變體以及用於突出顯示某些控制元件的強調顏色。

建立此主題後,將其應用於 AndroidManifest.xml 中的應用程式,並將主題應用於任何特定活動。這對於應用 AppTheme.NoActionBar 主題非常有用,該主題允許你實現非預設工具欄配置。

<application android:theme="@style/AppTheme" 
    ...>
    <activity 
        android:name=".MainActivity"
        android:theme="@style/AppTheme" />
</application>

你還可以使用 android:themeThemeOverlay 主題將主題應用於各個檢視。例如,使用 Toolbar

<android.support.v7.widget.Toolbar
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="?attr/colorPrimary"
  android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

還是一個 Button

<Button
    style="@style/Widget.AppCompat.Button.Colored"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:theme="@style/MyButtonTheme"/>

<!-- res/values/themes.xml -->
<style name="MyButtonTheme" parent="ThemeOverlay.AppCompat.Light">
    <item name="colorAccent">@color/my_color</item>
</style>