web-dev-qa-db-ja.com

Android、R.drawableで物事を参照してください。変数を使用していますか?

文字列の値に基づいてR.drawable.*に画像ファイルを動的にロードしたいとします

これを行う方法はありますか? R.内の何かを静的に参照する必要があるようです

13
Zugdud

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をそれに設定することができます。

20
newbie
int drawableId = getResources().getIdentifier(drawablename, "drawable", getPackageName());
imageview.setImageResource(drawableId);

これを試して。これはうまくいくはずです。

9
Yashwanth Kumar
Class res = R.string.class;
Field field = res.getField("x" + pos);
headerId = field.getInt(null);
header.setText(headerId);

これはドローアブルでも機能します。文字列を編集するだけです。ヘッダー部分は必須ではありません。これは、私が少し前に書いたものから抜粋した単なる例です。

1
user1015747