android – 将资源/文件分离到不同的apk进行换肤

我想让我的应用程序有几个皮肤.我的主要目的不是让用户改变皮肤,而是让我为每个顾客定制皮肤.

通过使用样式和主题,我可以将蒙皮信息与布局分开.它的作用就像一个魅力,但需要将所有皮肤及其所有资源(包括重量级位图)包含在应用程序中,这似乎浪费了更多皮肤创建的宝贵空间.

有一种方法可以制作一个自动构建(ant)脚本并让它决定包含什么,但由于其他一些原因,它不是优选的.

我在市场上看到过几个使用独立主题文件的应用程序(可单独下载和安装),所以我猜测可以实现将这些信息移动到单独的APK中.

我到目前为止,让我的应用程序和皮肤提供程序apk具有相同的UserID,以获得更多的彼此免费访问,但仍然不知道如何获取资源.

内容提供程序可能是一种解决方案,但是需要将布局信息从XML转移回代码并且具有一些性能问题的加号层,而这些问题并不适用于主要的视觉效果.

这个问题的最佳做法是什么?

一个更重要的信息:我必须使用API​​级别7(2.1),因此仅在更高级别API中工作的解决方案超出范围.

解决方法:

    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是调用者的上下文,即应用程序的上下文.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...