2011-04-21 46 views
4

我有约650个小图标,我需要在我的android项目中引用。它们的总尺寸约为70 k/b,所以尺寸不是问题。大量的图片参考,不想硬编码支持每个图像

我正在构建的应用程序只列出了这些图标的全部650个以及每个图标的标签。这些标签存储在一个字符串数组中,并且每个图标都有标签索引以便于参考(因此标签数组中的索引0与我的android项目的可绘制文件夹中的文件p0.png相协调) 。

这工作正常,但问题是,我可以引用这些图像而不使用R.class。 R类设置了变量和所有内容,但是当我只需循环遍历它们并使用文件名作为索引时,通过R类引用图像就很麻烦。

有没有办法访问这些图像,而不使用R.class?我也想避免使用SD卡,因为这些图像在SD卡中看起来会很烦人。

对此提出建议?

+0

作为提示,你可以去SD卡的路线;只需在目录中放置一个名为'.NOMEDIA'的文件,并且媒体扫描器不会对该文件夹编制索引。 – kcoppock 2011-04-21 21:41:22

回答

5

将图标放入/assets目录并使用AssetManager来访问它们。 assets目录中的资源不会在R文件中编入索引。

4

资产方法肯定会起作用,但带来的缺点是您无法将图像分为单独的文件夹。使用提供的函数将使您能够遍历通过索引传递的可绘制列表作为字符串值。

public int getId(String name) { 
     Class<R.drawable> class = R.drawable.class; 
     Field field; 
     int i = 0; 
     try { 
      field = class.getField(name); 
      i = field.getInt(field); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return i; 
    } 

编辑

道歉回答问题接受,接受我张贴。

+0

+1额外的信息总是好的,接受与否。 :) – kcoppock 2011-04-21 21:40:30