2010-08-01 7 views

Répondre

6

Supposez que vos images sont nommées img1.png, img2.png, etc., et qu'elles se trouvent dans le dossier res/drawable.

Ensuite, vous pouvez utiliser le code suivant pour définir au hasard une image dans un ImageView

ImageView imgView = new ImageView(this); 
Random rand = new Random(); 
int rndInt = rand.nextInt(n) + 1; // n = the number of images, that start at idx 1 
String imgName = "img" + rndInt; 
int id = getResources().getIdentifier(imgName, "drawable", getPackageName()); 
imgView.setImageResource(id); 
+0

salut, cela fonctionne très bien ... pouvez-vous me laisser savoir comment puis-je obtenir une image unique à chaque fois. je veux dire, si je donne n = 7, et appelez cette fonction 7 fois seulement, chaque fois qu'elle devrait donner des images uniques? comment puis-je faire cela? merci – iscavengers

+0

Random est un générateur aléatoire, et devrait donner un nombre aléatoire entre 0..n-1 chaque fois que vous exécutez nextInt(). Si vous avez des fichiers nommés img1, img2, ... img7, cela devrait donner une image aléatoire. Si vous voulez l'appeler SEULEMENT 7 fois, alors vous devez implémenter une méthode qui vous donnera une permutation aléatoire de 1..7, puis afficher les images en fonction de leur ordre dans la permutation. – Itsik

1

Je n'ai pas d'exemple mais je peux vous donner une idée.

  1. construire une liste d'images dans un réseau
  2. Générer un nombre aléatoire entre 0 et 1 de moins que le nombre d'images dans le dossier
  3. Utilisez un nombre aléatoire à l'étape 2 comme un indice à la matrice et ramasser l'image pour l'affichage.
+0

-1 Il est inutile de construire une liste d'images dans un tableau, tous les id images sont générées automatiquement dans la classe R Ce n'est pas aussi maintenable, vous devrez ajouter l'image à la matrice à chaque ajout d'image. – Itsik

1

Vous devez combiner certaines choses. D'abord vous avez besoin d'un ImageView afin d'afficher une image sur le téléphone Android.

Ensuite, je voudrais jeter un oeil dans un générateur de nombres aléatoires (par exemple http://docs.oracle.com/javase/6/docs/api/java/util/Random.html) de sorte que vous pouvez obtenir un nombre aléatoire. En combinant ces éléments à des choses, vous pouvez sélectionner une image de manière aléatoire parmi une liste d'images disponibles et l'afficher en utilisant ImageView.

Questions connexes