如何防止R.java中的某些值在添加/更新资源时发生更改

时间:2012-05-22 17:03:22

标签: android android-resources r.java-file

我需要存储用户选择的图像的链接。图像的来源是文件,联系人图标和资源的绘图(我需要绘图,因为我提供不同分辨率/密度的不同图像)。 出于统一的目的,我将其存储在URI中,因此该URI可能指向文件file://),内容提供商资源android.resource://...)。以下是指向id = 2130837534的drawable的URI如何:

android.resource://my.packagename/2130837534

除非重新生成R.java中的ID,否则它可以正常工作。那么,有没有办法阻止SDK更改某些R.java ID值?

3 个答案:

答案 0 :(得分:1)

不,你不能,也不应该。如果您可以清楚地描述您的问题,可能还有其他解决方案。

以这种方式将资源名称保存在文件中。

icon_profile_1 icon_profile_2

然后当您需要资源ID时,请执行此操作。

int resID = getResources().getIdentifier("icon_profile_1", "drawable","your_package_name");

Check here(java.lang.String,java.lang.String,java.lang.String)

答案 1 :(得分:1)

由于R.java是自动生成的,因此不能限制它的操作,因为在清理或编译项目时它会自动生成。

答案 2 :(得分:0)

这在Android中是不可能的,因为R.java是自动生成的,你不能为此做任何事情。