Kricek Posté(e) 17 septembre 2010 Share Posté(e) 17 septembre 2010 Coucou tout le monde! Petit renseignement svp: Je suis en train d'essayer de développer une petite appli mais je rencontre un petit souci, qui ne va surement pas en être un pour beaucoup d'entre vous, mais je démarre sous Android... :| Voilà: Je veux créer un Layout composé de plusieurs images qui seront téléchargées sur le net. Elles seront sur le même serveur, dans le même répertoire. le souci, c'est qu'il y aura un nombre variable d'images donc je ne peux pas mettre les URL en dur... J'ai trouvé comment récupérer UNE image depuis le net, mais là, je voudrais récupérer les URL dans un String[] ou un ArrayList, éventuellement... Je voudrais automatiser la préparation du Layout avec une boucle : for (String s: maListe) Actuellement, j'ai d'un coté un InputStream ouvert vers l'URL et j'aimerais avoir de l'autre ma fameuse liste... Quelqu'un connaitrait le chaînon manquant? Merci d'avance... Lien vers le commentaire Partager sur d’autres sites More sharing options...
ichpa Posté(e) 17 septembre 2010 Share Posté(e) 17 septembre 2010 Bonjour, Si ton serveur Web autorise le parcourir de ses répertoires, la liste des images doit être disponible au répertoire racine des images. Par contre récupérer plusieurs images de demandera forcément, au moins, autant de requêtes HTTP qu'il y'a d'images. ichpa Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 17 septembre 2010 Share Posté(e) 17 septembre 2010 Ce que je fais pour ma part, j'envoi une requete HTTP sur le dossier où sont stocké les images. La réponse sera donc le code source de la page que tu parseras ensuite pour récuperer les liens des images :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kricek Posté(e) 20 septembre 2010 Auteur Share Posté(e) 20 septembre 2010 Ce que je fais pour ma part, j'envoi une requete HTTP sur le dossier où sont stocké les images.La réponse sera donc le code source de la page que tu parseras ensuite pour récuperer les liens des images :) J'ai finalement fait comme toi, voilà ce que ca donne, pour les éventuels intéressés: //Le code qui appelle toutes les images //(La méthode "getTechno()" de la classe Acces renvoit un ArrayList): tableauImages = (new Acces()).getTechno(adresse); for(String s : tableauImages) { ImageView image = (new ImageView(this)); image.setImageBitmap(new Acces().getImage(adresse+s+".jpg")); layout.addView(image); } Voilà la méthode "getTechno()": public ArrayList getTechno(){ ArrayList adresses = new ArrayList(); try { URL url = new URL(l'adresse_de_mon_répertoire_distant); URLConnection conn = url.openConnection(); HttpURLConnection httpConn = (HttpURLConnection)conn; httpConn.setRequestMethod("GET"); httpConn.connect(); if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream in = httpConn.getInputStream(); InputStreamReader reader = new InputStreamReader(in); BufferedReader buffer = new BufferedReader(reader); while (buffer.ready()) { String temp = buffer.readLine(); if (temp.contains(" { String temp2 = temp.substring(temp.indexOf("")); adresses.add(temp2.substring(9)); } } buffer.close(); in.close(); } }catch (Exception e){} return adresses; } Et enfin, la méthode "getImage()": public Bitmap getImage() { BitmapFactory.Options bmOptions; bmOptions = new BitmapFactory.Options(); bmOptions.inSampleSize = 1; InputStream in = null; Bitmap bm = null; try { URL url = new URL(l'adresse_de_mon_fichier); URLConnection conn = url.openConnection(); HttpURLConnection httpConn = (HttpURLConnection)conn; httpConn.setRequestMethod("GET"); httpConn.connect(); if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) { in = httpConn.getInputStream(); bm = BitmapFactory.decodeStream(in, null, bmOptions); in.close(); } } catch (IOException e1) { } return bm; } Merci pour le tuyau! :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Infernus Posté(e) 20 septembre 2010 Share Posté(e) 20 septembre 2010 Je precise que je ne sais pas si c'est la meilleur facon de procéder ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kricek Posté(e) 20 septembre 2010 Auteur Share Posté(e) 20 septembre 2010 Je n'en sais rien mais ca fonctionne et c'est ce que je recherchais... Merci encore! :) 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.