ImageView填充动态值

时间:2013-04-06 03:29:00

标签: android dynamic imageview

还是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

有什么想法吗?

杰里米

1 个答案:

答案 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
    )
);