11
votes

Chargement d'images distantes

dans Android, quelle est l'approche la plus simple des éléments suivants:

  1. Chargez une image à partir d'un serveur distant.
  2. l'affiche dans une vue d'image.

0 commentaires

5 Réponses :


6
votes

Le moyen le plus simple jusqu'à présent est de construire une simple image d'image: xxx

Ensuite, il suffit de fournir une URL à la méthode et de retournera un bitmap . Ensuite, vous devrez simplement utiliser SetImageBitMap de imageview Pour afficher l'image.


1 commentaires

Savez-vous comment faire cela dans une connexion HTTPS?



20
votes

Voici une méthode que j'ai réellement utilisée dans une application et je sais que cela fonctionne: xxx

je n'ai aucune idée de ce que le deuxième paramètre à drawable.createfromstream est , mais en passant "src" semble fonctionner. Si quelqu'un sait, veuillez verser une lumière, car les documents ne disent rien à ce sujet.


3 commentaires

Je suis désolé si cela ne fonctionne pas, je ne l'ai pas testé. J'ai édité ma réponse et j'ai ajouté une autre méthode.


Les autres questions Stackoverflow semblent indiquer que "SRC" est inutile.


Votre extrait ne doit pas être utilisé à U.I. Fil, l'opération de réseau pourrait bloquer l'application et déclencher une fenêtre ANR. Vous devez utiliser l'asynctique ou un thread de fond de votre propre pour gérer les téléchargements. Il y a des bibliothèques comme code.google.com/p/droid4me/wiki/bitmapdownloaderOf A> Cela vous aide à gérer l'image Téléchargement de la bonne façon.



6
votes

Soyez prudent avec les deux réponses ici - ils exécutent tous les deux la chance d'un OutofMemoryException code>. Testez votre application en essayant de télécharger une grande image, telle qu'un fond d'écran de bureau. Pour être claire, les lignes incriminées sont les suivantes:

bitmap bm = bitmapfactory.decodetream (bis); code> p>

et p>

Thumb_d diguable = Digue.createfromstream (thumb_u.openstream (), "src"); code> p>

La réponse de Felix l'attrapera dans la déclaration de capture {}, et vous pourriez faire quelque chose à ce sujet là-bas. P>

Voici comment travailler autour du OutofMemoryException code> Erreur: P>

/**
 * Showing a full-resolution preview is a fast-track to an
 * OutOfMemoryException. Therefore, we downsample the preview image. Android
 * docs recommend using a power of 2 to downsample
 * 
 * @see <a
 *      href="https://stackoverflow.com/questions/477572/android-strange-out-of-memory-issue/823966#823966">StackOverflow
 *      post discussing OutOfMemoryException</a>
 * @see <a
 *      href="http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inSampleSize">Android
 *      docs explaining BitmapFactory.Options#inSampleSize</a>
 * 
 */


0 commentaires

6
votes

Vous pouvez aussi essayer cette lib: https://github.com/codingfingers/fastimage

Lorsque nous avons eu peu de projets avec le même modèle et que la lib est venue;) Alors pourquoi ne pas partager avec les autres ...


0 commentaires

2
votes

Ceci est simple:

Ajoutez cette dépendance dans votre script des grades: xxx

* 2.71828 est la version actuelle

alors faites-la pour le Vue d'image: xxx


0 commentaires