Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Drawable resource using a variable

Tags:

android

I want to use a variable instead of R.drawable.myimage because I have a database with the image's names. I get the name from the database and I want to use the drawable resource with this name.

String flagimage = "R.drawable." + myHelper.getFlagImage(5);
int resourceId = Integer.parseInt(flagimage);
Bitmap flag = BitmapFactory.decodeResource(getResources(), resourceId);
like image 814
Alex Avatar asked Sep 25 '11 07:09

Alex


2 Answers

You can use the name of a resource like

getIdentifier (String name, String defType, String defPackage);

getResources().getIdentifier("us","drawable","com.app");

The above function will return an integer value same as R.drawable.us.

This is how you access with resource names.

like image 78
blessanm86 Avatar answered Nov 15 '22 20:11

blessanm86


You can use this code to get the identifier...

 Resources res = this.getResources(); 
 int resID = res.getIdentifier(imagename, "drawable", this.getPackageName());
like image 28
mAndroid Avatar answered Nov 15 '22 20:11

mAndroid