Android Holo 主题 — 开发者的中立主题

作者: rain 分类: 移动 发布时间: 2012-01-04 17:23 6 条评论

还记得3个月前被手机厂商炒的沸沸扬扬的关于Android将统一界面的新闻报道吗?当时再加上Android 3.0的闭源开发,很多手机厂商和开发者都认为Google不想为他人做嫁衣,想进一步控制Android系统的发展,减少Android版本分化给用户和开发者照成的迷惑。

今天Android Framework团队开发者 Adam Powell 发表文章说,Android不会闭源, 统一界面是通过4.0引入的Holo主题来实现的。 在4.0+的系统上,所有要兼容Android CTS的手机系统都需要内置一个不可修改的Holo主题,开发者在开发程序的时候可以指定是使用Holo主题还是使用各个设备上的默认主题;同时为了便于手机厂商自定义界面,Android 4.0还引入了一个DeviceDefault主题,通过这种方式把设备主题和Holo主题分开,让手机厂商自定义界面和版本升级更加容易。

开发者可以在程序的Manifest文件中指定使用Holo主题, android:theme="@android:style/Theme.Holo.*",为了和以前的版本兼容,可以通过版本限定符(vN)来设置在不同的版本中使用不同的主题, 如下:

在 res/values/themes.xml 中使用如下自定义主题:

在 res/values-v11/themes.xml 中使用自定义主题,注意这里的v11限定符:

其实通过这种方式来解决这个第三方UI的问题,是个很不错的想法, 很多开发者都为了简单在4.0版本上都只使用Holo主题,这样就会导致厂商开发的自定义UI只在自己的设备上使用。最终的理想情况是:每个厂商开发的自定义UI只有他们自己的系统和内置的程序使用自定义的UI,而其他程序都使用Holo主题, 久而久之 手机厂商做自定义UI的激情也没有了, 从而实现了Android界面统一的终极目标。

本文出自 云在千峰,转载时请注明出处及相应链接。

本文永久链接: http://blog.chengyunfeng.com/?p=326

Ɣ回顶部