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 :

Afficher une image dans une ListView


Sujet :

Composants graphiques Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut Afficher une image dans une ListView
    Bonjour.

    J'essaie en vain d'afficher une image provenant d'Internet dans ma ListView.

    Voici mon 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
    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
    100
    101
    102
    103
    104
    105
    106
    107
    package com.my.package;
     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;
     
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    import org.ksoap2.SoapEnvelope;
    import org.ksoap2.serialization.SoapObject;
    import org.ksoap2.serialization.SoapSerializationEnvelope;
    import org.ksoap2.transport.HttpTransportSE;
     
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
     
    public class Announces extends Activity{
     
    	Context context;
    	private static final String SOAP_ACTION = "getData";
    	private static final String OPERATION_NAME = "getData";
    	private static final String WSDL_TARGET_NAMESPACE = "http://www.monsite.com/webservice/";
    	private static final String SOAP_ADDRESS = "http://www.monsite.com/webservice/soapserver.php";
     
    	public final static String ITEM_TITLE = "title";
    	public final static String ITEM_PHOTO = "photo";
    	public final static String ITEM_DESCRIPTION = "description";
    	public Map<String,?> createItem(String photo, String title, String description) {
    		Map<String,String> item = new HashMap<String,String>();
    		item.put(ITEM_PHOTO, photo);
    		item.put(ITEM_TITLE, title);
    		item.put(ITEM_DESCRIPTION, description);
    		return item;
    	}
     
    	private ListView lvListe;
     
    	@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.announces);
            context = this;
     
            lvListe = (ListView) findViewById(R.id.ListAnnounces);
     
    		SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, OPERATION_NAME);
     
    		SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    		envelope.dotNet = true;
     
    		envelope.setOutputSoapObject(request);
     
    		HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
     
    		ArrayList<HashMap<String, String>> items = new ArrayList<HashMap<String, String>>();
            HashMap<String, String> map;
     
    		try{
    			httpTransport.call(SOAP_ACTION, envelope);
    			Object response = envelope.getResponse();
    			String jString = response.toString();
    			try {
    				JSONArray jsonArray = new JSONArray(jString);
    				for (int i = 0; i < jsonArray.length(); i++) {
    					JSONObject jsonObject = jsonArray.getJSONObject(i);
    					String AttrMarque = jsonObject.getString("marque");
    					String AttrReference = jsonObject.getString("reference");
    					String AttrResume = jsonObject.getString("resume");
    					String AttrTitle = AttrMarque+" "+AttrReference;
    					map = new HashMap<String, String>();
    			        map.put(ITEM_PHOTO, "http://ondrejcermak.info/wp-content/uploads/2010/11/Android_logo.svg_.png");
    			        map.put(ITEM_TITLE, AttrTitle);
    			        map.put(ITEM_DESCRIPTION, AttrResume);
    			        items.add(map);
    				}
    			}catch (JSONException e){
    				lvListe.setFilterText(e.toString());
    			}
    		}catch (Exception exception){
    			lvListe.setFilterText(exception.toString());
    		}
     
    		SimpleAdapter mSchedule = new SimpleAdapter (
    										this,
    										items,
    										R.layout.list_announces,
    										new String[] {ITEM_PHOTO, ITEM_TITLE, ITEM_DESCRIPTION},
    										new int[] {R.id.list_announces_photo, R.id.list_announces_title, R.id.list_announces_description}
    									);
     
    		lvListe.setAdapter(mSchedule);
    		lvListe.setOnItemClickListener(new OnItemClickListener() {
             	public void onItemClick(AdapterView<?> a, View v, int position, long id) {
    				Intent intent = new Intent(context, Announce.class);
    		        context.startActivity(intent);
            	}
             });
        }
    }
    J'ai fixé la photo pour le test mais elle sera dynamique.

    Par ailleurs je ne sais pas si j'utilise la meilleure méthode pour créer ma ListView...

    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    J'ai enfin trouvé la solution sur un autre site.

    Reste plus qu'à trouver comment rendre le chargement des photos asynchrone...

  3. #3
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Reste plus qu'à trouver comment rendre le chargement des photos asynchrone...

    Tu as un très bon tutoriel sur le sujet ici :
    http://mickael-lt.developpez.com/tut...rie-connectee/

    Pour l'asynchrone ici :
    http://android-developers.blogspot.c...rformance.html

    De plus tu devrais bien faire attention lorsque tu changes d'image dans une ImageView a ne pas avoir de fuite de mémoire qui est souvent le cas sous Android.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    Justement en parlant de ça j'ai un bel écran noir pendant 3-4 secondes avant chaque affichage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. Afficher une image d'une BD dans une page JSF
    Par kam81 dans le forum JSF
    Réponses: 4
    Dernier message: 06/09/2011, 21h51
  3. Afficher une image d'une DB dans une page web
    Par akaii dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/03/2009, 10h56
  4. afficher la matrice d'une image dans une figure
    Par kawther dans le forum Interfaces Graphiques
    Réponses: 15
    Dernier message: 04/12/2008, 15h20
  5. Afficher une image dans une cellule d'une gridview
    Par guigui11 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/09/2007, 10h18

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