说我想根据字符串
的值在R.drawable.*
中动态加载图像文件
有办法做到这一点吗?好像我需要静态引用R.
答案 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,只需编辑字符串即可。标题部分不是必需的,它只是我刚才写的一个例子。