首页 > 代码库 > Android(Lollipop/5.0) Material Design(三) 使用Material主题

Android(Lollipop/5.0) Material Design(三) 使用Material主题

官网地址:https://developer.android.com/intl/zh-tw/training/material/theme.html

新的Material主题提供了:

系统Widgets可设置它们的调色板

系统Widgets的触摸反馈动画

Activity的过渡动画

您可以自定义Material主题,根据你的品牌标识,一个调色板来控制。

可以使用主题属性来为操作栏和状态栏着色,如图所示:



Material主题的定义:
@android:style/Theme.Material (dark version)
@android:style/Theme.Material.Light (light version)
@android:style/Theme.Material.Light.DarkActionBar

注:Material主题只能5.0(api21)及以上才能使用support-v7提供了兼容支持,在target-api<21上可以建一个res/values-21目录放置属于Material相关的Style

Customize the Color Palette  自定义调色板

自定义基于颜色的适合你的品牌的主题,当继承了Material主题时,可以使用Material主题中的属性来自定义颜色

<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>

Customize the Status Bar  自定义状态栏

Material主题可以让你轻松地定制状态栏,所以您可以指定一个适合你品牌的颜色,并提供足够的对比度显示白色的状态图标,

当继承自Material主题时,设置状态栏时自定义颜色:android:statusBarColor。默认情况下,android:statusBarColor继承了android:colorPrimaryDark。

你可以自己绘制状态栏。例如,你想在照片上能明显的显示状态栏,用一个细微的黑色渐变来确保白色状态栏图标可见。为此,设置android:statusBarColor属性为@android:color/transparent,并根据需要调整Window的flags。对于动画或消退(fading),你也可以使用Window.setStatusBarColor()方法

当你自定义导航和状态栏时,要么使它们都透明,要么只修改状态栏。导航栏在其他所有情况下必须保持黑色。

Theme Individual Views  个人主题View

在layout的xml定义中,可以使用android:theme来指定该View所适用的主题,指定后,它将改变当前View及其子View的theme。


Android(Lollipop/5.0) Material Design(三) 使用Material主题