Warum Android Picasso Bibliothek zum Herunterladen von Bildern ?

? user3376321 @ | Original: StackOverFlow
---

Warum sollte ich laden Sie die Bilder über das Picasso -Bibliothek statt nur mit diesem Code :

private Bitmap DownloadImage(String URL) 
{
    Bitmap bitmap = null; 
    InputStream in = null; 

    try 
    {
        in = OpenHttpGETConnection(URL);
        bitmap = BitmapFactory.decodeStream(in); in.close();
    } 
    catch (Exception e) 
    {
        Log.d("DownloadImage", e.getLocalizedMessage());
    }

    return bitmap; 
}

Noch eine Frage:

Hat Picasso laden Sie das Bild in der Benutzeroberfläche oder durch Hintergrund-Thread ?

---

Top 5 Antwort

1Sarpe @

Picasso laden Sie das Bild in einem anderen Thread und verwaltet für Sie:

the placeholder in the meantime the image is still downloading resizing cropping/centering/scaling caching ( you don't have to download the image every time) it even does "image fade in", which is popular/normal now

Es ist extrem einfach, hier ist ein Beispiel :

    Picasso.with(context)
           .load(url)
           .placeholder(R.drawable.placeholder)
           .resize(imgWidth, imgHeight)
           .centerCrop()
           .into(image);
2Joe Blow @

Nur für das Protokoll für jeden neu in Android oder vielleicht bewegen, um von iOS Android ..........

You absolutely have to use Picasso. Not a joke.

Ehrlich gesagt, es ist so einfach . Die Vorteile sind unglaublich.

Es ist diese einfach zu bedienen :

Picasso.
  with(State.mainContext).
  load(parseImageFile.getUrl()).
  into(null);

Sie sind sehr einfach :

must do caching, and threading, with image handling on Android.

So einfach ist das . Wenn Sie nicht, dass von Grund auf neu schreiben wollen, müssen Sie einfach Picasso verwenden .

Beachten Sie, dass ParseImageFile Wesentlichen funktioniert nicht - es völlig nutzlos über Caching und so weiter ist . Es gibt bewundernswerte Alternativen zu Picasso ( wie Universal Bild Loader, schau es Dir ), aber keine Arbeit sowie Picasso, für jetzt 2014 .

Beachten Sie, wenn Sie super- erweiterte - Stoffe bewegen ... Das einzige, was besser als Picasso, ist es, den Übergang zu Volley machen . aber das ist ein großer Sprung .

Beachten Sie, dass Listview Scrollen auf Android ist viel, viel problematischer als Tabelle Handhabung Scrollen auf iOS . Man könnte sagen, Android + Picasso ist mehr wie die Situation auf iOS, wo die ganze Arbeit bereits zum Scrollen großer Tisch Blick mit Bildern gemacht .

Für heute ist Picasso - einfach - ein zentraler Teil einer Android App auch immer. Gott sei Dank, es ist eine Zeile Code - kein Setup, nichts.

Auch das einzige, was " besser als" Picasso ist, wenn Sie Volley zu bewegen.

BTW hier ist eine ausgezeichnete langen Artikel über Volley v . Picasso, wenn Sie, dass ...

http://www.bignerdranch.com/blog/solving-the-android-image-loading-problem-volley-vs-picasso/

3BladeCoder @

Sie sollten ein Bild loader -Bibliothek wie Picasso, Volley oder Universal- Bild Loader zu verwenden, da sie die folgenden Dinge, die Ihr Code nicht tun :

Efficient multithreaded networking (on background threads of course) Combining multiple identical requests into a single network call Canceling pending requests, especially during ListView items recycling Disk and memory caching with various expiration policies Images downsampling to the target view size to improve performance and reduce memory usage Batching UI updates to improve UI responsiveness (at least for Volley and Picasso).

By the way, müssen Sie nie Netzwerkanforderungen auf dem UI-Thread ausführen und seit HoneyComb, ist Android nicht lassen Sie es tun.