1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| public class ListFeedAdapter extends BaseAdapter {
// les données à afficher
private ArrayList<Feed> feeds;
// * Le LayoutInflater permet de parser un layout XML et de
// * te transcoder en IHM Android. Pour respecter l'interface
// * BaseAdapter
private LayoutInflater inflater;
private ArrayList<String> mesUrl;
public ListFeedAdapter(Context context,ArrayList<Feed> feeds,ArrayList<String> mesUrl) {
inflater = LayoutInflater.from(context);
this.feeds = feeds;
this.mesUrl=mesUrl;
}
// * il nous faut spécifier la méthode "count()".
// * Cette méthode permet de connaître le nombre d'items présent
// * dans la liste. Dans notre cas, il faut donc renvoyer le nombre
// * de personnes contenus dans "mListP".
public int getCount() {
return feeds.size();
}
// Permet de retourner un objet contenu dans la liste
public Object getItem(int index) {
return feeds.get(index);
}
public long getItemId(int index) {
return this.feeds.get(index).getId();
}
// * Voici la partie la plus complexe de la classe
public View getView(int position, View convertView, ViewGroup parent){
// * Le paramètre "convertView" permet de recycler les élements
// * de notre liste. En effet, l'opération pour convertir un layout
// * XML en IHM standard est très couteuse pour la plateforme Android.
// * On nous propose ici de réutiliser des occurences créées qui ne sont
// * plus affichées. Donc si ce paramètre est "null" alors, il faut "inflater"
// * notre layout XML, sinon on le réutilise
FeedView fv;
if (convertView == null) {
fv = new FeedView();
convertView = inflater.inflate(R.layout.feed_view, null);
fv.name = (TextView)convertView.findViewById(R.id.title);
fv.image=(ImageView)convertView.findViewById(R.id.image);
convertView.setTag(fv);
} else {
fv = (FeedView) convertView.getTag();
}
fv.name.setText(feeds.get(position).getname());
setImage(fv.image, mesUrl.get(position));
return convertView;
}
public static void setImage(ImageView aView, String url) {
try {
URL aURL = new URL(url);
Log.i("URL","type= " + String.valueOf(aURL));
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
// Bufferisation pour le téléchargement
BufferedInputStream bis = new BufferedInputStream(is, 8192);
// Création de l'image depuis le flux des données entrant
Bitmap bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
// Fixe l'image sur le composant ImageView
aView.setImageBitmap(bm);
} catch (IOException e) {
Log.e("DVP Gallery", "Erreur téléchargement image URL : " );
e.printStackTrace();
}
}
} |
Partager