2010-11-30 2 views
18

Actuellement je dessine une image PNG dans mon application Android comme ceci:Réglage des images Android de valeur de chaîne

ImageView image = new ImageView(context); 
image.setImageDrawable(context.getResources().getDrawable(R.drawable.testimage)) 

Si j'ai une liste de noms d'images dans une base de données, est-il un moyen de régler la drawable ci-dessus en utilisant le nom de l'image? J'ai déjà le code pour parcourir la base de données, je cherche juste à dessiner l'image en fonction de la valeur tirée d'ici.

Par exemple, un record pour la DB:

ID: Name: ImageName: 
-  Test  testimage 

Alors, quand je lis ce disque, j'ai une chaîne avec la valeur de « TestImage » et je voudrais ensuite définir l'image dessinable à R.drawable.testimage.

Une façon je pensais faire ce serait quelque chose comme ceci:

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

// testimage.png is the image name from the database 
if(imageName.toString().equals("testimage.png")) 
    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; 

Cependant ce n'est pas très efficace!

Merci

Répondre

21

J'utilise:

int resId = getResources().getIdentifier("testimage", "drawable", getPackageName()); 
image.setImageResource(resId); 

"témoignage" - correspond par exemple à t estimage.jpg, c.-à-DonT inclure ".jpg"

"drawable" - est le type de ressource, comme dans: @ drawable/TestImage

Vérifier Resources.getIdentifier(...)

+0

int resId = getResources(). GetIdentifier ("testimage", "drawable", mainActivity.getPackageName()); Image bitmap = BitmapFactory.decodeResource (getResources(), resId); – dinesh707

+0

Boo ouais! C'était parfait. – LargeGlasses

0

vous mettre des images dans l'actif/dossier et ouvert

image.setImageURI("file:///android_asset/" + nameFromDB); 
-2

Chaîne path = "sdcard/camera_app/name.jpg"; img.setImageDrawable (Drawable.createFromPath (chemin));

+0

Sans aucune explication, ce n'est pas utile. –

+0

Vous pouvez utiliser le chemin d'accès pour différentes images exemple String path = "sdcard/camera_app/image1.jpg"; ou String path = "sdcard/camera_app/image2.jpg" Ceci peut être utilisé dans si autre condition pour dessiner une image que vous voulez. – Mudasar

Questions connexes