Aller au contenu

Recommended Posts

Posté(e) (modifié)

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.

Modifié par slevin
Posté(e)

Dé mémoire, ca doit être :

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

Posté(e)
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 ?

Posté(e)

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]).

Posté(e)
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.

Posté(e)
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 .

Posté(e)

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?

Posté(e) (modifié)

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.

Modifié par slevin

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...