微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐