
2.1 应用主题
作为开发者,我们希望我们的应用程序能够脱颖而出,也希望能将Android用户熟悉的所有特性整合进来。一种实现方式是在整个应用程序中使用特定的配色方案,通过定制或创建Android主题可以轻松地做到。
自API 21(Android 5.0)起,Android设备上默认使用Material主题。Material主题不仅仅是一个新外观,而且还默认提供了与Material Design相关的触摸反馈和过渡动画。和所有Android主题一样,Material主题是基于Android样式的。
Android样式是一组图形属性,用于定义特定屏幕组件的外观。利用样式,我们可以定义字体大小、背景色、内边距(padding)、高度(elevation)等任意内容。Android主题只是一种应用于整个活动(activity)或应用程序的样式。样式会被定义成XML文件,并存储在Android Studio项目的resources(res)目录中。
幸运的是,Android Studio提供了一个图形化主题编辑器,可以生成XML。尽管如此,理解幕后的情况总是好的,而打开上一章的抽象工厂项目或者开始一个新项目就可以看到。从项目资源管理器中打开res/values/styles.xml文件,它将包含以下样式定义:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
这里只定义了三种颜色,但我们可以定义更多的颜色,如主文本颜色、次文本颜色、窗口背景颜色等。颜色定义在colors.xml文件中,该文件也可以在values目录中找到,并且包含以下定义:
<color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color>
我们可以给应用程序应用多个主题并结合多种样式,但通常来说,在整个应用程序中应用一个主题,定制一个默认Material主题是最简单、干净的。
定制默认主题最简单的方法是使用主题编辑器,可以从Tools | Android(工具|Android)菜单打开该编辑器。该编辑器提供了一个强大的所见即所得(What You See Is What You Get, WYSIWYG)窗格,使我们可以即刻查看所做的所有更改,如图2-2所示。

图2-2
虽然我们可以自由为主题选择喜欢的颜色,但Material Design指南非常清楚地指导了颜色该如何搭配。查看Material调色板可以得到最佳解释。