0

我的各种可绘制文件夹中有一个文件夹结构,例如可绘制、可绘制-hdpi 等。

就像是:

drawable-hdpi
├── folder_main
│   ├── sub_folder_1
│   │   ├── 1.png
│   │   └── 2.png
│   ├── sub_folder_2
│   │   ├── 1.png
│   │   └── 2.png
│   └── sub_folder_3
│       ├── 1.png
│       └── 2.png
└── ic_launcher.png

访问这些资源将是动态的并以编程方式完成。我需要一种方法来访问这些子文件夹 png 资源。

ic_launcher使用以下命令可以直接访问: R.drawable.ic_launcher。从逻辑上讲,我认为您应该能够访问以下资源:

R.drawable.folder_main.sub_folder_1.1

但这显然不起作用,并且在子文件夹和文件是动态的情况下也不会以编程方式工作。

在此先感谢您的任何指点。

4

3 回答 3

2

您不能在资源文件夹中创建子文件夹。层次结构必须保持平坦。我认为它甚至不会编译。

于 2012-08-20T16:29:21.303 回答
0

发布我的问题后不久,我发现了这个堆栈溢出资源:

http://www.stackoverflow.com/a/10170925/321697

这和这里的答案解决了我与文件夹/文件结构有关的第一个问题。

然后我需要一种方法来处理这些资源。我这样做如下:

我将文件结构更新为:

drawable-hdpi
    ->name_1_0.png
    ->name_1_1.png
    ->name_1_2.png
    ->name_2_0.png
etc

然后我使用以下代码访问了这些文件:

int folder = 1;
int image = 0;
int resourceIdentifier = resources.getIdentifier("name_"+folder+"_"+image,"drawable","*whateveryourpackageiscalled");

注意:*whateveryourpackageis called = com.yourwebsite.etc

这样我就可以通过改变folderimage变量来动态访问我需要的图像。

于 2012-08-20T18:35:04.987 回答
0

不,Android不允许在资源文件夹中嵌套层次结构。如果你尝试这样的事情,你会立即得到编译错误。不幸的是,不能在资源文件夹中创建子文件夹。

于 2012-08-20T16:36:20.623 回答