Android文本时钟 V2 — Part1

607 查看

2013年1月时我发表了安卓文本时钟系列文章的第一部分。在文章的结语部分提到该App有很多可以改进的地方,所以在即将开始的新系列中,我们会对App做出一些改进,让它更绚丽一些。并且会使用到安卓最新版本中的新特性(本文发表时,安卓的最新版本号为4.4版本,版本代号Kitkat)。

首先,利用4.4版本新的线条颜色,将原本浅蓝高亮的线条颜色改为中性白。当然,我们必须还要保证不同安卓版本下的兼容性,这里就借助安卓的资源管理器在不同的安卓版本中应用对应的配色方案。

让我们先从默认的资源配置文件开始res/values/colors.xml

我们将使用holo主题作为默认的配色方案,对于不支持holo主题的老版Android系统时,上面(指定颜色)资源文件将发挥作用。

当设备使用了4.4或更高版本的系统时,为了能让原先的线条颜色变为中性白色,需要再定义一个(带有限定名的)资源文件放在res/values-v19/文件夹下。这样,当使用4.4或更高版本的系统时系统会自动使用该文件夹下的资源文件。

资源文件中资源的ID可能会有一点误导的嫌疑,因为该ID对应的颜色已经不再是蓝色。但为了保持代码中引用资源部分的一致性,我们只是将该ID对应的颜色改为“白色”。

为了让上面的资源文件发挥作用,需要对样式资源文件做出一些修改,将安卓系统预置颜色定义改为使用本地自定义的颜色。例如:

改为:

(注意:这里将原资源文件的@android:color/holo_blue_light改为@color/holo_blue_light

如果在4.4版本的设备上运行,我们会看到使用新配色方案后的效果:

android_text_clock_v2_part1_1

修改配色方案并没有到此为止,还有一个容易被忽视的地方也需要修改。在res/xml/appwidget_info.xml资源文件中,会定义该小部件在选择列表时的预览图片,这些图片目前还在使用老的配色方案。当设备使用4.4版本时,我们希望预览图也能使用新的配色方案。

只需将进行替换的图片存放到适当的(带限定名的)文件夹中,剩下的事情交给资源文件管理器就可以了。

我们已经有名为widget.png文件,分别存放在res/drawable-mdpires/drawable-hdpires/drawable-xhdpi文件夹下。此外,还需要提供4.4版本配色方案的同名资源文件,并将其放入带版本号和限定名的各个文件夹中:res/drawable-mdpi-v19res/drawable-hdpi-v19res/drawable-xhdpi-v19。当App运行时,系统会根据当前设备的版本和屏幕分辨率自动选择相应的文件夹下的资源。

再次运行App,在小部件选择列表中可以看到新的配色方案已经启用:

android_text_clock_v2_part1_2

在该系列的下一篇文章中,我们会继续给App添加一些动画效果。

本文完整源代码可以在这里找到,文本时钟App可以从Google Play市场下载。与文章改进对应的2.00版本将在近期发布到市场。未来几周内,文本时钟App还将做更多的微小升级并提供更加丰富的功能。