0

さまざまなドローアブルフォルダ内にフォルダ構造があります。たとえば、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

しかし、それは明らかに機能せず、サブフォルダーとファイルが動的である場合はプログラム的に機能しません。

ポインタを事前に感謝します。

4

3 に答える 3

2

リソースフォルダにサブフォルダを作成することはできません。階層はフラットのままである必要があります。コンパイルすらしないと思います。

于 2012-08-20T16:29:21.303 に答える
0

いいえ、Androidではリソースフォルダーにネストされた階層構造を使用できません。そのようなことをしようとすると、すぐにコンパイルエラーが発生します。残念ながら、リソースフォルダ内にサブフォルダを作成することはできません。

于 2012-08-20T16:36:20.623 に答える
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");

注:*パッケージの名前は何でも= com.yourwebsite.etc

このようにして、変数folderimage変数を変更することにより、必要な画像に動的にアクセスできます。

于 2012-08-20T18:35:04.987 に答える