使用 colorPrimary 来给你的 App Bar 上色

伴随Android5.0+之后,除了新增一些ToolBar、recyclerview、cardview等控件,MD的设计,App样式也改变了一些。
App颜色设置

事实上,AppCompat 使用了提供一个调色板(color palette [2])的技术让这一切变得非常容易。虽然 Material 主题是在 Android 5.0 引入的,但是 AppCompat 使得这种技术适用于所有Android 2.1 以上的设备。

如果你使用的是一个类似于 Theme.AppCompat 的主题,那么你只需要添加一个 colorPrimary 属性:









1
2
3

<style name =”AppTheme” parent =”@style/Theme.AppCompat”>
<item name =”colorPrimary”>@color/primary</item>
</style>



然后你的 App Bar 将会恰如其分地被上色。要注意到我们要用的是 colorPrimary 而不是 android:colorPrimary。和appCompat 提供的 colorPrimary不同, android:colorPrimary 只能被用在 Android 5.0 以上的设备。一定要确保你正使用的是正确的主题,这样才能使得文字和图标有足够的反差。

– Theme.AppCompat -> 深色的Activity,深色的 App Bar
– Theme.AppCompat.Light -> 浅色的Activity,浅色的 App Bar
– Theme.AppCompat.Light.DarkActionBar ->  浅色的Activity,深色的 Action Bar

也许你早已经迁移到了 Toolbars (或者包装在 Design Library 的 AppBarLayout 当中[3])? 在这种情况下,你很可能在使用 Theme.AppCompat.NoActionBar 或是  Theme.AppCompat.Light.NoActionBar 作为主题,并且把这些元素包含到了你的布局 XML 文件当中。值得庆幸的是,你依然可以通过 ?attr/colorPrimary 格式来利用你的 colorPrimary :

这个 ?attr/ 格式允许你把任何元素从你的主题中剥离,这让你更轻松地把主题固化在一个地方,从而避免在很多文件之间查找或是替换。

不过我们还遗留了一件事,那就是文字上色的部分。根本没有 Theme.AppCompat.Light.DarkActionBar.NoActionBar 这个主题。这便是 ThemeOverlay 颇为受用的证据。不同于一个完整的主题那样,ThemeOverlay 只是覆盖于当前主题,改变稍许它应该改变的视图。举个例子来讲,如果我们有一个浅色的主题但是需要一个深色的 Toolbar,我们可以这么用:

随此改变,文字和图标应该回归到了白色,与深色的 Toolbar 相得益彰。

你将会发现一些其它的颜色你可以添加,并且应该添加到你的主题中:例如 colorPrimaryDark 用以改变 5.0 以上的设备的状态栏以获得更深的广告色;colorAccent 则是高对比的强调色,为了让类似于 FloatingActionButton 这样的元素更加真实地浮现而设计。如果你想了解更多AppCompat 的事情,去看看我们的视频 Consistent Design with AppCompat 吧。

现在使用 colorPrimary 来给你的 App Bar 上色,赋予App个性吧![4]

Google Plus链接,需要梯子

#构建更佳的应用https://plus.google.com/s/%23BuildBetterApps

文中注释链接,需要梯子

[1] – http://www.google.com/design/spec/layout/structure.html?linkId=15263302#structure-app-bar
[2] – https://developer.android.com/training/material/theme.html?linkId=15263307#ColorPalette
[3] – https://developer.android.com/reference/android/support/design/widget/AppBarLayout.html?linkId=15263308
[4] – https://www.youtube.com/watch?v=5Be2mJzP-Uw

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值