还是Android新手。要温柔。我已经阅读了很多关于动态填充ImageView的文章。我需要以某种方式做到这一点,但我正在努力使用正确的语法。具有讽刺意味的是,我知道如何在iOS中做到这一点,但我完全被Android所困扰。以下是代码。
我想动态填充图片资源的名称及其位置。
//Set the string to lower case
String animalImageLocation = animalName.toLowerCase()+"icon";
//Prepare to set the value of the ImageView
animalView = (ImageView)findViewById(R.id.animalView);
//Dynamically populate the image into the animalView
animalView.setImageResource(getResources().getIdentifier("R.Drawable."+<dynamicValue??>,null,null));
我试过这个但是失败了。
//Set the string to lower case
String animalImageLocation = animalName.toLowerCase()+"icon";
//Prepare to set the value of the ImageView
animalView = (ImageView)findViewById(R.id.animalView);
//Dynamically populate the image into the animalView
animalView.setImageResource(getResources().getIdentifier("R.Drawable."+animalImageLocation,null,null));
我尝试了一些方法,所有方法都不显示图像或只是崩溃。我需要有效填充图像名称的getIdentifier(),即R.Drawable.bearicon
有什么想法吗?
杰里米
答案 0 :(得分:1)
首先,R.drawable
没有资本,我认为这很重要。此外,如果您将null
作为课程传递,则您也必须提供该课程。
请尝试以下方法:
animalView.setImageResource(
getResources().getIdentifier(
animalImageLocation,
"drawable",
animalView.getContext().getPackageName()
)
);
或者,或许这样,如果您希望将null
传递给后面的参数:
animalView.setImageResource(
getResources().getIdentifier(
animalView.getContext().getPackageName() + ":drawable/" + animalImageLocation,
null,
null
)
);