Material主题

Material主题能够提供以下功能:

  • 自定义系统区域的颜色。比如可以修改Status Bar的颜色,使APP的颜色风格和系统的颜色风格保持统一。
  • 为系统Widget提供触摸反馈动画。具体看以参考MaterialDesign中的动画
  • 提供Activity&Fragment过渡动画。具体可以参考Activity&Fragment过渡动画

系统提供了以下默认的Material主题:

  • @android:style/Theme.Material (dark version)
  • @android:style/Theme.Material.Light (light version)
  • @android:style/Theme.Material.Light.DarkActionBar

Material Dark版本的样式如下图所示:

MaterialDark

Material Light版本的样式如下图所示:

MaterialLight

自定义调色板

继承Material主题后,可以在styles文件中自定义调色板(Color Palette)。

1
2
3
4
5
6
7
8
9
10
11
12
<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>

上面属性对应的APP界面的颜色如下图所示:

ThemeColors

自定义StatusBar颜色

在Material主题中,使用android:statusBarColor属性定义状态栏的颜色,默认情况下,android:statusBarColor使用android:colorPrimaryDark对应的颜色。还可以通过Window.setStatusBarColor()动态设置状态栏的颜色。

单个View的主题

在XML布局文件中,可以为View使用android:theme属性指定特定的主题,这个主题修改只对View及其子View起作用,通常用于改变部分UI的主题颜色。

坚持原创技术分享,您的支持将鼓励我继续创作!