Android ImageView setImageResource in code-ThrowExceptions

Exception or error:

I have an imageView that i want to display a little icon of the country that you are currently in. I can get the country code, but problem is i can’t dynamically change the imageView resource. My image files are all lowercase (Example: country code=US, image file=us)

My code (countryCode is the current countryCode in uppercase letters):

    String lowerCountryCode = countryCode.toLowerCase();
    String resource = "R.drawable." + lowerCountryCode;
    img.setImageResource(resource);

Now, of course this will not work because setImageResource wants an int, so how can i do this?
Thanks in advance 😀

How to solve:

One easy way to map that country name that you have to an int to be used in the setImageResource method is:

int id = getResources().getIdentifier(lowerCountryCode, "drawable", getPackageName());
setImageResource(id);

But you should really try to use different folders resources for the countries that you want to support.

###

This is how to set an image into ImageView using the setImageResource() method:

ImageView myImageView = (ImageView)v.findViewById(R.id.img_play);
// supossing to have an image called ic_play inside my drawables.
myImageView.setImageResource(R.drawable.ic_play);

###

you use that code

ImageView[] ivCard = new ImageView[1];

@override    
protected void onCreate(Bundle savedInstanceState)  

ivCard[0]=(ImageView)findViewById(R.id.imageView1);

###

you may try this:-

myImgView.setImageDrawable(getResources().getDrawable(R.drawable.image_name));

Leave a Reply

Your email address will not be published. Required fields are marked *