Android 使用Material的主題

2018-08-02 18:18 更新

編寫: allenlsy - 原文: https://developer.android.com/training/material/theme.html

新的 Material 主題提供:

  • 系統(tǒng)組件,用于設(shè)定調(diào)色板
  • 系統(tǒng)組件的觸摸反饋動畫
  • Activity 切換動畫

你可以根據(jù)你的品牌特征修改調(diào)色板,從而自定義 Material 主題。你可以通過主題屬性調(diào)整 action bar 和狀態(tài)欄的顏色,就像下圖一樣:

系統(tǒng)組件擁有新的設(shè)計和觸摸反饋動畫。你可以自定義調(diào)色板,反饋動畫和 Activity 切換動畫。

Material 主題被定義在:

  • @android:style/Theme.Material (暗色版本)
  • @android:style/Theme.Material.Light (亮色版本)
  • @android:style/Theme.Material.Light.DarkActionBar

 

想知道可用的 Material style 的列表,可以在 API 文檔中參見 R.style.

Note: Material 主題只支持 Android 5.0 (API level 21) 及以上版本。v7 Support 庫提供了一些組件的 Material Deisgn 樣式,也支持自定義調(diào)色板。更多信息,請參見維護兼容性章節(jié)。

自定義調(diào)色板

在根據(jù)自己的品牌自定義調(diào)色板時,你需要在繼承 material 主題時定義 theme 屬性。

<resources>
  <!-- inherit from the material theme -->
  <style name="AppTheme" parent="android:Theme.Material">
    <!-- Main theme colors -->
    <!--   your app branding color for the app bar -->
    <item name="android:colorPrimary">@color/primary</item>
    <!--   darker variant for the status bar and contextual app bars -->
    <item name="android:colorPrimaryDark">@color/primary_dark</item>
    <!--   theme UI controls like checkboxes and text fields -->
    <item name="android:colorAccent">@color/accent</item>
  </style>
</resources>

自定義狀態(tài)欄

Material 主題使得你很容易自定義狀態(tài)欄,你可以設(shè)定適合自己品牌的顏色,并提供足夠的對比度,以顯示白色的狀態(tài)圖標(biāo)。設(shè)置狀態(tài)欄顏色時,要在繼承 Material 主題時設(shè)定 android:statsBarColor 屬性。默認情況下,android:statusBarColor 會繼承 android:colorPrimaryDark 的值。

你也可以在狀態(tài)欄的背景上繪畫。比如,你想讓位于照片之上的狀態(tài)欄透明,并保留一點深色漸變以確保白色圖標(biāo)可見。這樣的話,設(shè)定 android:statusBarColor 屬性為 @android:color/transparent 并調(diào)整窗口的 Flag 標(biāo)記。你也可以用 Window.setStatusBarColor() 來實現(xiàn)動畫或淡入淡出。

Note: 狀態(tài)欄必須隨時保持和 primary toolbar (即頂部Actionbar,譯者注) 的界線清晰。除了一種情況,即在狀態(tài)欄后面顯示圖片或媒體內(nèi)容時之外,你都要用漸變色來確保前臺圖標(biāo)仍然可見。

當(dāng)你自定義導(dǎo)航欄和狀態(tài)欄時,要么兩者都透明,要么只修改狀態(tài)欄。其他情況下,導(dǎo)航欄應(yīng)該保持黑色。

主題單獨視圖

XML layout 中的元素可以定義 android:theme 屬性, 用于引用主題資源。這個屬性修改了自己和子元素的主題,對于要修改局部顏色主題的情況十分有用。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號