是否可以在 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 中使用 XML 作为可绘制对象创建自定义形状?
Android:有没有一种简单的方法可以为视图创建圆角,而不必每次都创建单独的可绘制对象?