anto2b Posté(e) 11 décembre 2011 Share Posté(e) 11 décembre 2011 Bonjour à tous, je récupère des données grâce à un parser XML qui utilise la méthode SAX. J'ai utiliser ce tutoriel (http://thibault-koprowski.fr/2010/10/15/tutoriel-parsing-xml-sous-android/ la fonction getThumb me renvoie l'adresse url de l'image de chaque article et j'aimerais l'afficher dans un ImageView mais je n'arrive pas à l'adapter dans mon ADAPTER et c'est pour cela que je fais appel à vous !!! Merci de votre aide Voici mon adapter : package com.rssreader; import java.util.ArrayList;import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; 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; public ListFeedAdapter(Context context,ArrayList<Feed> feeds) { inflater = LayoutInflater.from(context); this.feeds = feeds; } // * 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.thumb = (TextView)convertView.findViewById(R.id.thumb); fv.title = (TextView)convertView.findViewById(R.id.title); fv.pubDate = (TextView)convertView.findViewById(R.id.pub_date); convertView.setTag(fv); } else { fv = (FeedView) convertView.getTag(); } fv.thumb.setText(feeds.get(position).getThumb()); fv.pubDate.setText(feeds.get(position).getPubDate()); fv.title.setText(feeds.get(position).getTitle()); return convertView; }} Et voici un moyen d'afficher l'image grâce à la classe Bitmap package com.img; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.widget.ImageView; public class ImageTestActivity extends Activity { String image_URL= "http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView bmImage = (ImageView)findViewById(R.id.img); BitmapFactory.Options bmOptions; bmOptions = new BitmapFactory.Options(); bmOptions.inSampleSize = 1; Bitmap bm = LoadImage(image_URL, bmOptions); bmImage.setImageBitmap(bm); } private Bitmap LoadImage(String URL, BitmapFactory.Options options) { Bitmap bitmap = null; InputStream in = null; try { in = OpenHttpConnection(URL); bitmap = BitmapFactory.decodeStream(in, null, options); in.close(); } catch (IOException e1) { } return bitmap; } private InputStream OpenHttpConnection(String strURL) throws IOException{ InputStream inputStream = null; URL url = new URL(strURL); URLConnection conn = url.openConnection(); try{ HttpURLConnection httpConn = (HttpURLConnection)conn; httpConn.setRequestMethod("GET"); httpConn.connect(); if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) { inputStream = httpConn.getInputStream(); } } catch (Exception ex) { } return inputStream; } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.