2011-09-10 137 views
1

是否可以在Android项目的资源文件夹中创建子文件夹?我在我的项目中需要大约200张图像(缩略图),我可以将它们添加到drawable-mdpi中,但最好不要将这些图像与其他图像混合。像drawable-mdpi - > thumbs - >这里的所有图像。在资源文件夹中创建子文件夹

回答

4

不,这是不允许的。您只能制作由android文档指定的文件夹。

允许的子文件夹名称在link中指定。 Android根据这些结构生成R.java并放置子文件夹可能会导致错误。

0

实际上,在res文件夹中存在具有非标准名称的文件夹时,会生成R.java文件的机制。

(我就遇到了这个想分享一个git回购既是iOS和Android项目的一个子模块,但不wantint的Android项目拿起我指定的文件夹中驻留的文件。)

aapt是创建R.java文件的工具,可以使用--ignore-assets参数调用它。在google source documentation中有一组默认设置,或者通过从命令行调用aapt而没有任何参数(或--help,这不是有效的参数,但提供帮助),可以进行较为详细的描述。在Android项目中使用aapt.ignore.assets=xxx中的ant.properties文件可以完成几乎相同的任务,具体取决于您的需求或偏好。

如果没有强制的ant使用(我不),该aapt--ignore-assets一个默认值是<dir>_*,这意味着忽略任何文件夹开始_一个build.xml或其他机制。

这是我的回退:我创建了一个名为_iOS_retina的目录,并将所有我的@ 2x文件放在那里。 (在Xcode中,我可以简单地从他们所在的位置获取资源)。默认调用aapt只是忽略它。为了进一步简化我的项目,我还更新了我的.project文件以包含忽略此文件夹的资源过滤器,因此它在我的eclipse环境中也不占用任何空间。

<filteredResources> 
     <filter> 
      <id>1371429105277</id> 
      <name></name> 
      <type>26</type> 
      <matcher> 
       <id>org.eclipse.ui.ide.multiFilter</id> 
       <arguments>1.0-name-matches-true-false-_iOS_retina</arguments> 
      </matcher> 
     </filter> 
    </filteredResources>