3

我已经在市场上的许多应用程序中看到了此功能,例如 ADWLauncher。您安装了一个应用程序,然后您可以下载仅用于第一个应用程序主题的应用程序。我真的很想在我制作的应用程序中执行此操作,但我不知道该怎么做。

最简单的解决方案是将所有可能的主题简单地包含到主应用程序中,然后根据还安装的其他应用程序“解锁”它们。这是一个非首选的解决方案,因为添加更多主题会使应用程序变得更大,从而导致空间浪费。这也可以防止第 3 方提出自己的主题。

另一种解决方案是让香草应用程序加载来自主题应用程序的资源和类,但我不知道如何实现。

还有其他方法可以实现吗?建议的机制是什么?任何输入将不胜感激。

之前有人问过类似的问题,但没有回应:

https://stackoverflow.com/questions/3772440/android-how-to-allow-third-party-developers-to-skin-my-app

https://stackoverflow.com/questions/3771923/android-possible-for-one-app-to-provide-styles-themes-for-another-app

4

3 回答 3

0

我也很好奇这个。不过,目前我最好的猜测是确保您的所有 UI 控件都是可绘制的,而不仅仅是股票微调器/滑块等。在 UI 中为图形使用可绘制对象,并且当您发布您的 apk 时,这些资源不应该只是可见但可以被他人改变。再说一次,我不是 100% 确定的,所以不要引用我的话,哈哈。

于 2011-05-27T13:24:03.230 回答
0

我一直在寻找有关如何执行此操作的示例,但据我所知,没有办法在包之间共享资源和代码。我能找到的最佳解决方案是让一个包通过 ContentProvider 为其他包提供其资源。

于 2011-09-02T19:11:49.750 回答
0

您可以使用此代码段获取其他应用程序的资源

context.getPackageManager().getResourcesForApplication(String appPackageName);
于 2012-08-03T17:08:08.877 回答