Comment ajouter des images dynamiquement à une ImageView
Je suis en train d'écrire un jeu de puzzle pour apprendre à développer des Applications Android. Mais maintenant je suis coincé sur la façon d'ajouter des images dynamiquement à la ImageViews dans le fichier de mise en page (voir ci-dessous). Je suis en train de faire une boucle où je ajouter une image aléatoire à chacun des ImageViews. Mais je ne peux pas trouver des exemples sur la façon de le faire. Mes images sont le même nom que la ImageViews, uniquement en lettres minuscules.
Ou y a t'il d'autres et de meilleures façons de résoudre ce problème?
Mon code pour l'instant:
//Puzzle of 2x2 tiles
String[] sTiles = {"A0","A1","B0","B1"};
final Random myRandom = new Random();
//Random tiles
String tmp = null;
for (int i = 0; i < sTiles.length; ++i) {
tmp = sTiles[i];
int r = myRandom.nextInt(sTiles.length);
sTiles[i] = sTiles[r];
sTiles[r] = tmp;
}
//Lopp to add images randomly to the screen (layout/main.xml)
//for(i=0; i < sTiles.length; ++i) {
ImageView image = (ImageView) findViewById(R.id.B0);
image.setImageResource(R.drawable.a0);
//}
--------------- layout/main.xml ------------
<TableRow>
<ImageView
android:id="@+id/A0"
android:layout_column="1" />
<ImageView
android:id="@+id/A1"
android:gravity="right" />
</TableRow>
<TableRow>
<ImageView
android:id="@+id/B0" />
<ImageView
android:id="@+id/B1" />
</TableRow>
Merci, Sigurd!
Vous devez vous connecter pour publier un commentaire.
Essayer de mettre en place un peu int des tableaux pour stocker votre drawable et widget Id. Il est plus rapide que l'utilisation de la réflexion pour trouver le nom. Quelque chose comme ceci devrait faire l'affaire:
Vous pouvez ajouter certains de manutention spéciale si vous voulez vous assurer que tous les ImageViews obtenir des images uniques, mais qui devrait fonctionner comme est.
Une solution est de lire avec réflexion les valeurs de R. drawable et de le charger en tant que Bitmap par obtenir la valeur du champ dans R.
C'est quelque chose comme:
Vous aurez à faire une sorte de conteneur(Linéaire Ou Relative de la mise en page peut-être) et ajouter les images à la vue. Exemple: