48

重複の可能性:
Android - @drawable 文字列からリソースを開く

まず、タイトルで申し訳ありませんが、どのタイトルを設定できるか正確にはわかりません。

わかりました、ここに私の質問があります:

外部データベースから、たとえば「picture0001」などの文字列を受け取ります。

res/drawable フォルダーに、picture0001 という名前の画像があります。

その画像を ImageView の背景 (ソース) として設定したいと思います。

問題は、外部データベースから取得した文字列を使用してこの画像を検索するにはどうすればよいかということです。

どうもありがとう。

4

2 に答える 2

179

はい、を使用して名前で検索できますResources.getIdentifier()

Context context = imageView.getContext();
int id = context.getResources().getIdentifier("picture0001", "drawable", context.getPackageName());
imageView.setImageResource(id);

効率的ではありませんが、時折リソースを検索するために機能します。

于 2012-11-12T20:43:27.653 に答える
4

次のようにリフレクションを使用することもできます。

Class c = Class.forName("your.project.package.R");
Field f = c.getDeclaredField("drawable");
Class d = f.getDeclaringClass();
Field f2 = d.getDeclaredField("yourstring");
int resId = f2.getInt(null);
Drawable d = getResources().getDrawable(resId);

ただし、最善の解決策は MarvinLabs が提案したものです。

于 2012-11-12T20:31:40.763 に答える