2013-01-23 7 views
0

J'essaie d'afficher une image dans mon application qui change chaque fois que j'appuie sur un bouton. Le nom de l'image qui doit apparaître est dans mon objet. Je peux obtenir le nom de l'image avecChemin relatif utilisant setImageResource

String nameOfImage = myObhect.get(i).getImageName(); 

Maintenant, je veux afficher l'image actuelle avec

iv.setImageResource(R.drawable.notruf); 

En utilisant setImageResource, je ne pas savoir comment porter le nom de mon image setImageResource parce que, par exemple

iv.setImageResource(R.drawable. + aktbild) n'est pas possible à coup sûr.

J'ai également essayé le chemin avec setImageDrawable mais cela ne fonctionne pas pour moi.

Répondre

3

J'utilise une solution similaire dans mon application:

Context mContext = this; // I supposed you're in Activity 
String imgName = fragenkatalog.get(i).getBild(); 
int resId = mContext.getResources().getIdentifier(imgName, 
         "drawable", mContext.getApplicationInfo().packageName); 
if(resId > 0){ 
    iv.setImageResource(resId); 
} 
+0

Merci pour votre réponse. Qu'est-ce que mContext? – user896692

+0

mContext est votre Activité/Contexte – throrin19

+0

Le nom de mon activité est Bronze (classe publique Bronze étend Activité), Bronze.getResources() .... ne fonctionne pas. Ai-je tort sur mon chemin? – user896692

0

Je crois que ce code vous aidera u ..

String aktbild = fragenkatalog.get(i).getBild(); 
byte[] decodedString = Base64.decode(aktbild , Base64.DEFAULT); 
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, 
decodedString.length); 

Après cela, si vous voulez redimensionner que l'utilisation de l'image ce code.

int width=75; 
int height=75; 
Bitmap resizedbitmap=Bitmap.createScaledBitmap(decodedByte, width, height, true); 

finalement mis image en ImageView.

Icon.setImageBitmap(resizedbitmap);`