ing0 ing0 - 2 months ago 4x
Android Question

Setting Android images from string value

Currently I'm drawing a PNG image in my Android application like so:

ImageView image = new ImageView(context);

If I have a list of image names in a database, is there a way to set the drawable above using the image name? I already have the code to go through the database, I'm just looking to draw the image based on the value taken from here.

For example, a record for the DB:

ID: Name: ImageName:
- Test testimage

So when I'm reading this record, I have a string with the value of "testimage" and I'd then want to set the image drawable to

One way I was thinking of doing it would be something like this:

int image = R.drawable.blank; // blank image

// testimage.png is the image name from the database
image = R.drawable.testimage;
else if(imageName.toString().equals("another.png"))
image = R.drawable.another;
else if(imageName.toString().equals("etc.png"))
image = R.drawable.etc;

However this isn't very efficient!



There is a method for doing that, you can retreive resource IDs by string using Resources.getIdentifier()

Something like:

int resourceId = Activity.getResources().getIdentifier("testimage", "drawable", "");