2016-10-12 11 views
0

Androidスタジオでは、標準の「res」とは異なるフォルダからリソース(画像、音声など)標準の「res」とは異なるリソースフォルダ内のファイルにアクセスする方法 - Android

  • を画像 'aaa.png' を含む '_Resources' フォルダ:、

    はのは、私が持っていると仮定しましょう。

  • 画像「bbb.png」

を含む標準「の解像度」フォルダ私はGradleのファイル内に入れている:私はAndroidのウィンドウに表示その後

android { 
    sourceSets { 
     main.resources.srcDirs += 'C:/..../myLibrary/src/_Resources' 
    } 
} 

を(トップのAndroidメーカーの左)は、標準の 'res'フォルダと 'resources'フォルダの両方を正しく認識します。

私は「RES」標準フォルダの「bbb.png」にアクセスする必要がある場合は、私が使用:

import com.myproject.R 
..... 
int xxx = R.drawable.bbb 

質問です: aaa.pngために今アクセスすることができますか?

Rにはありません。私は何か他のものをインポートしようとしましたが、何ですか?

はこれが不可能であるアドバンス ファウストに

+0

'main.resources.srcDirs'を' main.res.srcDirs'に変更し、それらのリソースに対して 'R'値が生成されているかどうかを調べてみてください。 – CommonsWare

+0

私は試しましたが、うまくいきません – Fausto70

答えて

0

、ありがとうございました。複数のリソースフォルダに同じ名前の2つのpngファイルを定義した場合、アンドロイドはそれらのうちのどれか1つだけをロードします(どちらが確実かはわかりません)。

これらの名前は実際にはIDです。 IDのコンセプトは、そのユニークな感覚です。だからあなたはこれを行うことができません。

複数のリソースフォルダを持つことは、ファイルを分離してすべてをより明瞭に、よりよくすることになります。ちょうどフォルダーと何もない。

同じ問題が持っている可能性があるものについて
+0

ありがとうございますが、2つのファイルの名前は異なります:aaaとbbb;別のリソースフォルダが必要な理由は、そのフォルダが(NetBeansの)他のプロジェクトと共有されているためです。 – Fausto70

+0

ファイル名が同じでない場合、問題はありません。あなたは他のリソースフォルダを参照するために何かをする必要はありません。あなたのリソースフォルダに追加するだけで、あなたのRファイルに追加されます –

+0

あなたの質問には、現在両方のresフォルダにaaa.pngが含まれていると言いました!!! –

0

:私はフォルダを資源にアクセスする際の成功を持っていなかったが、私は自分のニーズに合った別の解決策た

を:私は「_Resources」フォルダを追加

を資産には、Gradleのファイルへの書き込み:

main.assets.srcDirs += 'C:/..../myLibrary/src/_Resources' 

その後、私がして、リソースへのコード内でのアクセスを取得:

AssetManager assetManager = getAssets(); 
InputStream myInputStream = assetManager.open("aaa.png"); 

これはすべてです...

関連する問題