Android,引用R.drawable中的东西。使用变量?

时间:2011-10-29 19:54:50

标签: android android-resources

说我想根据字符串

的值在R.drawable.*中动态加载图像文件

有办法做到这一点吗?好像我需要静态引用R.

中的任何内容

3 个答案:

答案 0 :(得分:16)

您是否在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设置为它。

答案 1 :(得分:9)

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

试试这个。这应该有用。

答案 2 :(得分:1)

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

这也适用于drawables,只需编辑字符串即可。标题部分不是必需的,它只是我刚才写的一个例子。