Aller au contenu

ImageAdapter avec gallery


Florent Just

Recommended Posts

Bonjour a tous,

J'ai créé une application qui affiche une gallery d'image (et potentiellement ajouter des images en cliquant sur un bouton)

Voici mon code

public class ImgAdapteur extends BaseAdapter{

int GalItemBg;
private Context cont;
private ArrayList<Integer> maliste;

public ImgAdapteur(Context c) {
 cont = c;
	maliste = new ArrayList<Integer>();
	maliste.add(R.drawable.token_red);
}
public int getCount() {
 return maliste.size();
}
public Object getItem(int position) {
 return position;
}
public long getItemId(int position) {
 return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
 ImageView imgView = null;

 //Récyclage du composant
 if (convertView == null)  imgView = new ImageView(cont);
 else	   imgView = (ImageView)convertView;

 imgView.setImageResource(this.maliste.get(position));
 imgView.setLayoutParams(new Gallery.LayoutParams(50, 60));
 imgView.setScaleType(ImageView.ScaleType.FIT_XY);
 return imgView;
}


public void AddToken(int token)
{
 this.maliste.add(token);
 notifyDataSetChanged();
}
}

et l'appel de fonction


   ImgAdapteur Adapteurp1 = new ImgAdapteur(this);
  	 tokenp1 = (Gallery) findViewById(R.id.tokenp1);
	tokenp1.setAdapter(Adapteurp1);
	tokenp1.setSpacing(5);

Mon problème : j'aimerai d'une part mettre un texte sur les images. d'autre part faire que mon ImgAdapteur gère une liste d'objet (par exemple qui contient une image et un texte) à la place d'une liste d'image

Merci beaucoup

Lien vers le commentaire
Partager sur d’autres sites

Dans la méthode getView plutôt que de charger manuellement une ImageView, tu dois utiliser le procédé de layoutinflater afin de charger un de tes fichiers XML correspondant à la visualisation que tu attends pour chaque élément de ta gallery.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Et concernant ta première demande tu créer un objet Image avec les champs que tu souhaite (url, texte)

Ensuite tu replace ton array de integer par un array de ta classe image. Après tu peut utiliser les méthodes de ta classe pour récupérer tel ou tel champ.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...