IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

ListView - flux xml - images web


Sujet :

Composants graphiques Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Par défaut ListView - flux xml - images web
    Bonjour,

    Je ne vais pas vous coller le code actuel de mon appli mais plutôt vous demander des conseils de dév et je verrai s'il vaut mieux tout redévelopper ou chercher encore et encore les bugs.

    Mon appli récupère un flux xml sur le net. Chaque item est composé de textes et d'une image.

    Comment faire pour que le chargement des images soit complètement asynchrone ? Actuellement, ça marche à moitié, les images sont chargées quand elles apparaissent à l'écran et non pas au chargement de la liste (les images non visibles ne sont pas chargées en arrière plan).

    J'ai également plusieurs ListViews, quand on navigue de l'une à l'autre, les images de l'une s'affichent à la place de celles de l'autre (alors qu'il n'y a pas de problème pour les textes).
    Comment peut-on les conserver en cache correctement ?

    Merci.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2013
    Messages : 70
    Par défaut
    Sans voir ton code, c'est difficile, la seul chose que je peux faire, c'est t'envoyer sur les bonnes pratiques avec les bitmaps.
    Il doit y avoir un moyen de les dl, dans un thead, pour les stockers en mémoire cache.
    Et pour ton problème de liste, c'est peut être un problème avec l'adapter regarde "Displaying Bitmaps in Your UI" sur le même lien. (édite: ou un problème de code :/)

    http://developer.android.com/trainin...aps/index.html

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Par défaut
    Merci, oui c'est sans doute un problème de code dans l'adapter mais je ne trouve pas.
    Bon tout compte fait, je copie le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class RssListAdapter extends ArrayAdapter<Evenement> {
    	Context mContext;
    	String currentPath;
     
    	public RssListAdapter(Context context, List<Evenement> evenementList,
    			String path) {
    		super(context, 0, evenementList);
    		mContext = context;
    		currentPath = path;
    	}
     
    	@Override
    	public View getView(int position, View convertView, ViewGroup parent) {
    		final Evenement evenement = getItem(position);
    		final RssItemWrapper rssItem;
    			rssItem = new RssItemWrapper();
    			LayoutInflater inflater = LayoutInflater.from(mContext);
    			rssItem.rootLayout = (LinearLayout) inflater.inflate(R.layout.rssitem, null);
    			rssItem.rootLayout.setLayoutParams(new AbsListView.LayoutParams(parent.getWidth(), LayoutParams.WRAP_CONTENT));
     
    			rssItem.rssTitle = (TextView) rssItem.rootLayout.findViewById(R.id.nameLabel);
    			rssItem.rssImage = (ImageView) rssItem.rootLayout.findViewById(R.id.itemimage);
     
    		try {
    			if (evenement != null) {
    				rssItem.rssTitle.setText(evenement.getTitre());
     
    				if (evenement.getImagePath() != null) {	// si image déjà chargée
    					rssItem.rssImage.setImageBitmap(Utils.readBitmap(evenement
    							.getImagePath(), 117, 79));
    					rssItem.rssImage.setVisibility(View.VISIBLE);
     
    				} else if (evenement.getImage() != null) {	// charger image
     
    					ImageLoadTask loadImageTask = new ImageLoadTask();
    					loadImageTask.addOnImageLoadListener(new OnImageLoadListener() {
     
    								public void onPrepare() {
     
    								}
     
    								public void onFinished(String result) {
    									if(result == null) return;
    									rssItem.rssImage.setImageBitmap(Utils
    											.readBitmap(result, 117, 79));
    									rssItem.rssImage
    											.setVisibility(View.VISIBLE);
    									evenement.setImagePath(result);
    								}
    							});
    					loadImageTask.execute(evenement.getImage(), currentPath + "/" + position + ".jpg");
    					evenement.setImageLoadTask(loadImageTask);
     
    				}else{
    					Drawable image = mContext.getResources().getDrawable(R.drawable.els_cellimage_placeholder);
    					rssItem.rssImage.setImageDrawable(image);
    				}
    			}
    		} catch (Exception e) {
    		}
    		rssItem.rootLayout.setTag(rssItem);
    		return rssItem.rootLayout;
    	}
    }
    Si quelque chose vous choque dans ce code, merci de me l'indiquer

Discussions similaires

  1. Flux Xml et Web Service.
    Par dudule dans le forum Services Web
    Réponses: 1
    Dernier message: 18/11/2011, 15h23
  2. [DOM] Envoi d'un flux XML via un web service
    Par flex01 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/02/2009, 14h37
  3. Traité un flux XML provenant d'un Web Service
    Par LeLapinVengeur dans le forum BIRT
    Réponses: 1
    Dernier message: 16/04/2008, 22h54
  4. Données binaires (image) dans un flux XML
    Par SheikYerbouti dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 14/08/2007, 15h32
  5. [DOM XML] Créer une image à partir d'un flux XML
    Par Just dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 09/11/2006, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo