2010-05-13 120 views
6

我的应用程序将为每个使用它的公司定制。直到现在,我一直在从资源文件加载图像和字符串。这个想法是,默认资源将随应用程序一起分发,公司特定的资源将在我们的服务器上点击链接从电子邮件启动初始化意图后加载。有谁知道如何替换资源文件?我真的想继续使用资源文件来避免重写很多代码/ XML。下载并替换Android资源文件

我会从我们自己的服务器上分发应用程序,而不是通过应用程序商店,这样我们可以为每个公司分配一个版本,但不幸的是,这会给我们的客户带来相当讨厌的安全警告。

回答

10

有谁知道如何替换 资源文件?

这是不可能的,除非通过部署更新APK。 APK数字签名,不能在运行时修改。

7

不,这是不可能的,但这里是你可以做什么,而不是...在资产文件夹中的图片等复制。从资产文件夹,复制他们在应用程序目录..即数据/数据运行/ yourapppackage/yourresourcefolder 使用从运行时文件夹中的图片等。即代码说,.. ... imageView.setBackgroundDrawable(data/data/apppackagename/download/themename/resourcename)现在 当您从运行路径下载你的资源,保持与主要的名称和路径为图像的XML文件作为键值对..有approprite枚举的,在代码和图像路径存储在运行时的HashMap ..

+1

所以,基本上,你所提出的建议而不是使用Android的[资源](http://developer.android .com/guide/topics/resources/resources-i18n.html)系统,只需使用他们的fil存储呢? – Casebash 2010-05-13 22:59:46

+0

我会赞成这个答案,除了你的第一句话说“是可能的”,当它实际上不能完成,这只是一个工作。如果你纠正了这个问题,那么我会对它进行调整 – Casebash 2010-06-01 07:17:46

+0

@Casebash我知道你的意思是“如果你改正了这个”。所以基本上你不能替换可绘制的文件夹,即资源文件夹,但可以引用从运行时路径中获取的图像。因此,可能我并不是说,从资源文件夹中替换图像,但在运行时替换图像的解决方案是可行的,只要您提供运行时路径。对不起造成的不便之处。 :) 谢谢, Alok。 – 2010-07-29 14:50:10