Le changement d'image de fond de la vue de façon dynamique
J'ai un un ensemble de 10 imageviews dans ma mise en page. J'ai donné un ordre séquentiel id est aussi
android:id="@+id/pb1"
android:id="@+id/pb2"
Maintenant, je veux changer de fond de manière dynamique.
int totalPoi = listOfPOI.size();
int currentPoi = (j/totalPoi)*10;
for (i=1;i<=currentPoi;i++) {
imageview.setBackgroundResource(R.drawable.progressgreen);
}
Maintenant à l'intérieur de la boucle for, je veux régler l'affichage de l'image d'arrière-plan de façon dynamique. i,e si le currentpoi valeur est 3, arrière-plan 3 vues d'images doit être changé. Qu'est-ce déjà le temps de la boucle for parcourt que beaucoup d'affichage de l'image de l'arrière-plan doit être changé. Espérons que la question est claire maintenant.
Note : j'ai seulement 1 image progressgreen qui doivent être définis à 10 vues d'images
pouvez-vous montrer plein de code et de les expliquer clairement. combien de drawable s que vous avez. liste des drawable s.
Quelle est votre question?
Quelle est votre question?
OriginalL'auteur tejas | 2011-10-24
Vous devez vous connecter pour publier un commentaire.
Enfin j'ai fait cela de la manière suivante,
J'ai placé tous les id dans le tableau comme
Maintenant:
Maintenant, je suis en mesure de changer les images de façon dynamique.
@goto10. Merci pour votre aide. Je vais le débogage de votre point de voir ce qui n'allait pas dans mon côté
OriginalL'auteur tejas
Créer une ImageView tableau:
Maintenant effectuer une itération de la boucle pour définir l'arrière-plan des images comme ceci:
OriginalL'auteur Hiral
vous pouvez le faire en mettant le nom d'un drawable quelque chose comme:
img_1, img_2, img_3...
OriginalL'auteur Permita
Essayer ce code.....
Créer une image de Tableau..
Et de modifier votre code
tu veux changer les images aléatoires à partir de votre Image de Tableau???
Il veut changer l'arrière-plan sur un certain nombre de ImageViews en fonction de la valeur de currentPoi. Si c'est 3, puis les trois premiers (10) les images doivent avoir leur contexte a changé. Votre code a 5 contexte et, si currentPoi est de 3, les modifications de l'arrière-plan sur une image en 3 fois.
Ce serait comme me demander, vous pouvez peindre les murs d'une pièce rouge, vert, bleu et orange et vous avez fini peindre un mur en rouge, puis la peinture de la même mur vert, puis le bleu et l'orange. Je finirais avec un mur orange au lieu des quatre murs peints que j'ai demandé.
oui exactement..c'est Ce que ma question est
OriginalL'auteur Mitesh Jain
Vous pourriez faire un tableau de votre ImageViews et puis les modifier dans votre boucle for.
et puis changer pour la boucle:
Les tableaux commencent à l'indice 0, alors assurez-vous il n'y a pas une-par-une erreur ici.
OriginalL'auteur ImR
Vous aurez besoin pour donner à votre ImageViews séquentielle id, tels que "@+id/pb1" et "@+id/pb2", etc.. Ensuite, vous pouvez obtenir de chacun d'eux dans la boucle comme ceci:
Remplacer
com.your.package.name
avec votre package de l'application.imageView est définie dans la ligne précédente qui recherche l'ImageView en fonction de l'ID. L'ID est calculé à partir du nom de l'ImageView. Je vais ajouter quelques commentaires sur le code afin de le rendre un peu plus clair.
oui il a obtenu, mais ont un idiot doute, pb auquel on se réfère, est l'affichage de l'image de l'objet de droit?
Oui. pb1, pb2, etc. sont ImageViews.
C'est en me jetant à la valeur null dans la ligne de ImageView imageView = (ImageView) findViewByid(imageViewId);, pour imageView bien dans la ligne précédente imageViewId n'est pas null
OriginalL'auteur goto10