我想让我的应用程序有几个皮肤。我的主要目的不是让用户改变皮肤,而是让我为每个顾客定制皮肤。
通过使用样式和主题,我可以将蒙皮信息与布局分开。它的作用就像一个魅力,但需要将所有皮肤及其所有资源(包括重量级位图)包含在应用程序中,这似乎浪费了更多皮肤创建的宝贵空间。
有一种方法可以制作一个自动构建(ant)脚本并让它决定要包含哪些内容,但由于某些其他原因,它不是首选。
我在市场上看到过几个使用独立主题文件的应用程序(可单独下载和安装),所以我猜测可以将这些信息移动到单独的APK中。
我到目前为止,让我的应用程序和皮肤提供程序apk具有相同的UserID,以便彼此有更多的免费访问权限,但仍然不知道如何获取资源。
内容提供商可能是一个解决方案,但是需要将布局信息从XML转移回代码并且有一些带有一些性能问题的加号层,而这些问题并不适用于主要的视觉效果。
此问题的最佳做法是什么?
一个更重要的信息:我必须使用API级别7(2.1),因此仅适用于更高级别API的解决方案超出范围。
答案 0 :(得分:1)
private static Resources getThemeResources(String themePackage, Context context) throws NameNotFoundException {
try {
return [context.getPackageManager().getResourcesForApplication(themePackage);][1]
} catch (Exception e) {
return null;
}
}
这将为您提供指定apk的资源。 themePackage应该是您尝试访问的主题的完整包。 context是调用者的上下文,即应用程序的上下文。