文字列の値に基づいてR.drawable.*
に画像ファイルを動的にロードしたいとします
これを行う方法はありますか? R.
内の何かを静的に参照する必要があるようです
XMLファイルで画像のIDを宣言しましたか?行った場合は、次の方法を使用できます。
Res/drawableフォルダーにpicture.pngがあるとします。
アクティビティでは、main.xmlファイルで画像リソースを設定できます
<ImageView Android:id="@+id/imageId" Android:src="@drawable/picture"></ImageView>
FirstActivityで
//to retrieve image using id set in xml.
String imageString = "imageId"
int resID = getResources().getIdentifier(imageString , "id", "package.name");
ImageView image = (ImageView) findViewById(resID);
imageStringは動的な名前です。その後、動的リソースの識別子を取得できます。
別の方法では、これを行うことができます:
//to retrieve image in res/drawable and set image in ImageView
String imageName = "picture"
int resID = getResources().getIdentifier(imageName, "drawable", "package.name");
ImageView image;
image.setImageResource(resID );
画像リソースを参照し、ImageViewをそれに設定することができます。
int drawableId = getResources().getIdentifier(drawablename, "drawable", getPackageName());
imageview.setImageResource(drawableId);
これを試して。これはうまくいくはずです。
Class res = R.string.class;
Field field = res.getField("x" + pos);
headerId = field.getInt(null);
header.setText(headerId);
これはドローアブルでも機能します。文字列を編集するだけです。ヘッダー部分は必須ではありません。これは、私が少し前に書いたものから抜粋した単なる例です。