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

Android Discussion :

Parser JSON problème d'image


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut Parser JSON problème d'image
    Bonjour à tous,

    Je crée une application qui recupère les données de chaque article. Pour cela j'utilise le JSON, pour parser mes données qui se trouvent à cette adresse : http://bastia1905.com/android/export_android.php

    Mon problème est le suivant : Lorsque je fais cette instruction,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    map.put("thumb", "Thumb : " +  e.getString("thumb"));
    cela me renvoie une adresse url d'une image. Mais je n'arrive pas à l'afficher dans un imageView. Auriez-vous une solution à mon problème ? Merci de votre aide.

    Voici mon activité :

    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
    package com.pxr.tutorial.json;
     
    import java.util.ArrayList;
    import java.util.HashMap;
     
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    import com.pxr.tutorial.xmltest.R;
    import android.app.ListActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ListAdapter;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
     
    public class AttualitaActivity extends ListActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.attualita);
     
            ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
     
     
            JSONObject json = JSONfunctions.getJSONfromURL("http://bastia1905.com/android/export_android.php");
     
            try{
     
            	JSONArray  earthquakes = json.getJSONArray("articles");
     
    	        for(int i=0;i<earthquakes.length();i++){						
    				HashMap<String, String> map = new HashMap<String, String>();	
    				JSONObject e = earthquakes.getJSONObject(i);
     
    				map.put("id",  String.valueOf(i));
    	        	map.put("titre", e.getString("titre"));
    	        	map.put("extrait", e.getString("extrait"));
    	        	map.put("thumb", "Thumb : " +  e.getString("thumb"));
    	        	map.put("date", e.getString("date"));
    	        	mylist.add(map);			
    			}		
            }catch(JSONException e)        {
            	 Log.e("log_tag", "Error parsing data "+e.toString());
            }
     
            ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.listplaceholder, 
                            new String[] { "titre", "extrait", "thumb", "date"}, 
                            new int[] { R.id.item_title, R.id.item_subtitle, R.id.item_thumb,  R.id.item_date});
     
            setListAdapter(adapter);
     
            final ListView lv = getListView();
            lv.setTextFilterEnabled(true);	
            lv.setOnItemClickListener(new OnItemClickListener() {
            	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        		
            		@SuppressWarnings("unchecked")
    				HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);	        		
     
    				Intent affichearticle = new Intent(getApplicationContext(),ArticleActivity.class);
    				affichearticle.putExtra("titre", o.get("titre"));
    				// On appelle l'activity
    				startActivity(affichearticle);
    			}
    		});
        }
    }

  2. #2
    Membre chevronné Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Par défaut
    Bonjour,

    Est-ce que l'url que tu obtient avec e.getString("thumb") est bien correct ?

    Essaye de l'afficher si tu n'en est pas sûr.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut
    Oui j'ai essayer d'afficher le lien et cela marche. Maintenant j'aimerais afficher l'image correspondant à l'url mais je ne sais pas comment faire.

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Bonjour,

    Il est peut être possible d'envoyer un tableau de byte ou un Bitmap!!! Dans ce cas c'est assez simple je pense!

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut
    Pourriez vous me montrer comment ça marche avec mon code s'il vous plait, merci de votre aide.

  6. #6
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Tres bien si thumb représente l'url de l'image, il faut d'abord le télécharger!
    Pour cela,

    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
     
    URL url = new URL(e.getString("thumb"));
    File file = new File("nom_image.jpg");
     
    URLConnection ucon = url.openConnection();
    InputStream is = ucon.getInputStream();
    BufferedInputStream bis = new BufferedInputStream(is);
     
    // Ceci
    ByteArrayBuffer baf = new ByteArrayBuffer(50);
                            int current = 0;
                            while ((current = bis.read()) != -1) {
                                    baf.append((byte) current);
                            }
     
    //ou ceci
    /*
    Bitmap bm = BitmapFactory.decodeStream(is);
    */
     
    is.close ();
    "baf" ou "bm" contient ton image

    Edit:
    Avec le Bitmap tu peux tout simplement faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ImageView i = (ImageView) findViewById (R.id.imageView);
    i.setImageBitmap(bm);

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/07/2005, 18h07
  2. problème affichage image
    Par thealpacino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/05/2005, 13h56
  3. [javascript] problème insertion image
    Par Pwill dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/05/2005, 16h12
  4. problème dessiner image dans fenêtre
    Par raoulman dans le forum MFC
    Réponses: 5
    Dernier message: 13/12/2004, 15h44
  5. Problème d'image avec DirectX9 et c# VS.net...
    Par lilly_lilly dans le forum DirectX
    Réponses: 1
    Dernier message: 02/03/2004, 14h02

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