是否可以在 Android 的可绘制对象中使用子文件夹? [复制]

Posted

技术标签:

【中文标题】是否可以在 Android 的可绘制对象中使用子文件夹? [复制]【英文标题】:Is it possible to use sub folders in drawables in Android? [duplicate] 【发布时间】:2012-02-20 04:36:08 【问题描述】:

在我的应用程序中,我有多个图像文件夹和子文件夹。他们在drawables里面。如何从 drawables 子文件夹中检索图像?

例子:

drawable>actions>sports>soccer.png

如何获得这张“soccer.png”照片?

感谢任何帮助。

谢谢!

【问题讨论】:

【参考方案1】:

这现在(在某种程度上)可以通过使用 android Studio 和 Gradle 来实现。

虽然仍然无法使用子文件夹,但可以将资源分成不同的集合并使用merged by the build system。

例如,为了简化我的项目,我希望将特定主题的可绘制对象与标准可绘制对象分开。

我创建了一个名为“res_lighttheme”的新资源文件夹,如下图所示。

然后我将指向该文件夹的指针添加到我的 build.gradle 文件中,如下所示。要添加多个,只需在定义中添加另一行即可。

结果是两个文件夹都被视为资源的有效目的地。如果存在冲突,将生成构建错误。即如果两个文件夹中包含相同的资源。

【讨论】:

内线不正确。它必须是:srcDirs = ['src/main/res', 'src/main/your_res_folder'] 并且必须包含您的默认 res 文件夹 不一定。您的解决方案将替换所有源目录。我的将新的添加到任何已经存在的(例如默认的)。这两种方法都没有错,但我的解决方案完全有效并且有效。 您的方法已弃用,它会引发 gradle 错误,因此从现在开始它必须是 srcDirs。 它在我的项目中仍然可以正常工作,但答案是 2 岁,所以说它不正确有点挑剔。此外,文档中也没有提及弃用,仍然给出了使用 srcDir 的示例:docs.gradle.org/current/userguide/java_plugin.html 方法不被弃用。它完美地工作。此外,这也有效: res.srcDirs += 'src/main/res_myotherdir'【参考方案2】:

,android资源机制不支持drawable目录下的子文件夹,不能放。

我认为,如果您在 res/drawable 文件夹内有一个包含任何项目的子文件夹,将导致资源编译器失败——阻止正确生成 R.java 文件。

唯一的一件事就是将图像放在平面名称中,例如drawable_actions_sports_soccer.png

【讨论】:

谢谢!可惜这不能做! =(

以上是关于是否可以在 Android 的可绘制对象中使用子文件夹? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在android中屏蔽视图?

如何在 Android 中使用 XML 作为可绘制对象创建自定义形状?

Android:有没有一种简单的方法可以为视图创建圆角,而不必每次都创建单独的可绘制对象?

可以在 Android Studio 的可绘制文件夹中创建子文件夹吗? [复制]

防止 Proguard 删除特定的可绘制对象

如何在代码中获取 attr 引用?