我有一堆名为1.jpg,2.jpg ......和56.jpg的图像。我在变量中也有一个_id值,取决于从上一个列表活动中选择的项目。我有以下代码来显示图像。
ImageView image = (ImageView) findViewById(R.id.headerimage);
image.setImageResource(R.drawable.image1);
我想要做的是动态显示与_id值对应的图像,例如......这样的东西?
ImageView image = (ImageView) findViewById(R.id.headerimage);
image.setImageResource(R.drawable.myID + ".jpg");
我该怎么做?
干杯,
麦克
答案 0 :(得分:2)
是的,你可以这样做。
只需使用Resouces.getIdentifier()即可。请注意此实现较慢使用id和始终检查resourceId是否为0 (这意味着您要求的资源不会退出。
示例:
View view = //...
int number = //...
int resId = getIdentifier("files_"+number, "drawable", "com.my.project.package");
view.setBackgroundResource(resId);
答案 1 :(得分:0)
据我所知,你没有。我刚才有类似的问题,你可以找到它here. 出于某种原因,如果您尝试动态引用资源名称,Android似乎不喜欢它。我最终通过将我动态想要引用的所有资源放在一个数组中来修复它。