【问题标题】:Sorting my resources in subfolders在子文件夹中对我的资源进行排序
【发布时间】:2017-09-16 09:18:26
【问题描述】:

我发现很多帖子都说无法将子文件夹添加到可绘制对象和其他默认文件夹,但所有这些帖子都很旧,所以我想知道是否仍然无法添加子文件夹。

我发现你可以创建与“res”同级的文件夹,并将它们添加到gradle文件中

sourceSets
{
    main
    {
        res
        {
            srcDir 'src/main/res-mytest'
        }
    }
}

但我试图在 res-mytest 文件夹中添加 xml 和图像,但我不能将它们用作:

<TextView ...
android:background="res-mytest/borders_1.xml">

我做错了什么? 谢谢。

【问题讨论】:

  • 正常访问资源。不要包含文件夹名称。所有资源都被视为位于默认文件夹中。
  • 正常是​​什么意思?因为通常我会写“@drawable/borders_1”,但由于它不在“drawable”的根目录中,所以它不起作用。
  • 它应该是这样工作的。您以这种方式添加的任何文件夹都会被构建系统简单地合并,并视为它们都在同一个文件夹中。如果它们不是您的情况,则说明您在配置中犯了错误。
  • 再说一次,我现在将以下文件夹添加到 srcDir:'src/main/res/drawable/folder1/borders'、'src/main/res/drawable/folder1'。我同步 build.gradle 文件。但是当我尝试访问文件 folder1/borders.xml 和 folder1/borders/borders2.xml 我不能。您是在告诉我,我应该能够通过简单地编写“@drawable/borders2”或“@drawable/borders”来访问它们,对吗?它不起作用。
  • 可能是因为“布局”不是标准资源文件夹。 “布局”是

标签: android


【解决方案1】:

没有。实际上这是可能且容易的..请按照下面的图片进行操作

【讨论】:

  • 我试图遵循这一点。我在“drawables”中创建了一个名为“folder1”的文件夹,然后在一个名为“borders”的文件夹中创建了一个文件夹。我移动了一个特定的borders.xml,但在schemas.android.com/apk/res/android" > 上出现错误:“URI 未注册”。我还将 srcdirs 添加为 srcDir 'src/main/res/drawable/folder1/borders'
  • 您不能在之前定义的资源文件夹中有子文件夹。每个资源文件夹必须是平面的并且没有子文件夹,否则您将收到有关 Uri 未注册的错误。
  • 请注意,这仅适用于 Android Studio 或其他基于 Gradle 的构建。其他开发工具可能不支持这种方法。
猜你喜欢
  • 1970-01-01
  • 2020-01-13
  • 2013-02-10
  • 2023-04-11
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多