访问文件夹/文件结构以获取资源

时间:2012-08-20 16:17:19

标签: android android-resources android-assets

我的各种可绘制文件夹中都有一个文件夹结构,例如drawable,drawable-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

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

提前感谢任何指示。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

不,Android 不允许资源文件夹中的嵌套层次结构。如果你尝试过类似的东西,你会立即得到编译错误。遗憾的是,资源文件夹中不能创建任何子文件夹。

答案 2 :(得分: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");
  

注意:* whateveryourpackageiscalled =   com.yourwebsite.etc

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