Jump to content

ImageView dynamique


slevin

Recommended Posts

Bonjour,

Voilà je m'explique :

Je voulais savoir comment faire pour attribuer dynamiquement une image à un composant imageview contenu dans un fichier xml.

Dans le dossier res/drawable se trouve toutes les images que j'ai besoin et dans mon fichier xml, j'ai ceci :

android:layout_width="fill_parent"

android:layout_height="50px"

xmlns:android="http://schemas.android.com/apk/res/android"

android:gravity="center">

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center">

android:layout_width="wrap_content"

android:layout_height="wrap_content">

Merci.

Edited by slevin
Link to comment
Share on other sites

Dé mémoire, ca doit être :

ImageView imgVw = (ImageView)findViewById(R.id.ImageView01);
imgVw.setImageResource(R.drawable.mon_image);

Effectivement c'est bien comme ça.

Mais mon problème est le suivant : admettons que j'ai une listview avec 3 items : "Chat,Chien,Tigre" et que dans mon dossier res/drawable j'ai 3 images : Chat.jpg Chien.jpg et Tigre.jpg

Comment faire pour affecter dynamiquement l'imageview en fonction du choix de la listview ?

J'arrive déjà à récupérer la valeur de l'item sélectionné dans la listview mais lorsque je fais appel à la fonction sivante : SetImageResource et bien je dois mettre en dur le nom de l'image alors que je voudrais que ce soit dynamique.

Je sait pas si c'est compréhensible ?

Link to comment
Share on other sites

Il faut conserver un tableau (private static final int[] ANIMALS) des ResID de tes types (chien, chat, tigre). Ensuite il te suffit de modifier l'image associée à ton ImageView par un simple mImageView.setImageResource(ANIMALS[type]).

Merci je vais m'orienté vers cette solution.

Link to comment
Share on other sites

Il faut conserver un tableau (private static final int[] ANIMALS) des ResID de tes types (chien' date=' chat, tigre). Ensuite il te suffit de modifier l'image associée à ton ImageView par un simple mImageView.setImageResource(ANIMALS[type']).

Merci je vais m'orienté vers cette solution.

Je bloque sur un truc :

Sachant que j'ai un tableau de mes ResId nommé ANIMALS, et que j'ai en ma possession une varaible de type String contenant le nom de l'animal récupérer dans la liste , comment faire pour récupérer le bon ResId dans le tableau lié au String que j'ai en ma possession ?

Je pense que c'est simple, mais bon dès fois on bloque sur des choses simples .

Link to comment
Share on other sites

Je n'avais pas compris ça :p. Le mieux serait d'avoir des types d'animaux représenter par des entiers pour utiliser la méthode donnée ci-dessus. Si tu souhaite conserver ta représentation des types par String il te faudra une structure de données du genre de HashMap. Malheureusement, ce genre de structure de données n'est pas vraiment adaptée dans ton cas car elle engendre la création d'objets (des Integers).

Tu es sûr que transposer ton chien, char, tigre en 0, 1 et 2 n'est pas possible?

Link to comment
Share on other sites

Effectivement Profete162 j'avais pas vu que ton sujet traitait de ce problème là.

En même temps j'[color=red][b]été[/b][/color] focalisé sur imageview donc c'est pour ça que j'ai pas vu ton topic.

Je vais voir ça.

Par contre peux-tu voir la question que je t'ai posé sur le topic concernant les listview ?

merci.

Edited by slevin
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...