1

我想在我的应用程序中使用 Theme.Wallpaper。这个主题使用手机当前壁纸作为背景。问题是它不适用于 4.1 设备。我还尝试在我的样式资源中重新创建 Theme.Wallpaper,但它再次不适用于 4.1 设备。- 请注意,它可能也不适用于较低的 API,我只确认它适用于 2.2.1 而不适用于 4.1。我想知道为什么它不起作用以及是否有任何解决方案。

4

1 回答 1

2

终于找到答案了,有点复杂:

在为 14 以上的目标(我的是 17)构建的项目中,eclipse 会自动创建一个“values-v11”和一个“values-v14”文件夹(适用于 api 版本 14 及以上或 11 及以上的手机或 AVD)。在这些文件夹中是包含“AppBaseTheme”样式的 style.xml 文件,此“AppBaseTheme”样式替换了默认“values”文件夹中的那个,它是“AppTheme”样式的父(或:被扩展)默认情况下应用于应用程序..

现在,我选择将“Theme.Wallpaper”样式应用于我的应用程序的方式是让我的“AppBaseTheme”继承自它。了解这一点后,我的应用程序在具有 API 11 及更高版本的系统上没有类似“Theme.Wallpaper”的行为就变得很明显了:我从未让替代的 v11 和 v14“AppBaseTheme”扩展“Theme.Wallpaper”或更合适v11 为“Theme.Holo.Wallpaper”,v14 为“Theme.DeviceDefault.Wallpaper”。

所以,如果你在应用样式方面遇到麻烦,我希望你能看到这个......

编辑:如果您阅读本文,并且在 Eclipse 中编辑 style.xml 文件时遇到问题,请尝试在任何文本编辑器中打开此文件(我最喜欢的是 notepad++),然后删除所有注释,然后在 Eclipse 中重新打开它。如果您需要评论,只需在文本编辑器中添加评论。

于 2013-02-15T20:39:26.950 回答