2 Stimmen

Das Laden von Bildern mit Picasso bei einer langsamen Verbindung

Ich verwende Picasso, um Bilder für eine Listenansicht zu laden. Das Problem ist, dass die Internetverbindung langsam ist. Wie kann ich die Ladezeitüberschreitung in Picasso ändern?

Mein Code sieht so aus:

Picasso.with(context)
.load(MainActivity.WEBSITE + book_item.Image)
.resize(final_thumb_width, final_thumb_height)
.into(new PicassoTarget(book_item,item.img, item.title));

4voto

welshk91 Punkte 1543

Sie könnten möglicherweise etwas Ähnliches wie dies in Ihrem MainActivity's onCreate ausprobieren (oder wo immer Sie den Picasso Builder erstellen möchten)

    Picasso picasso;
    OkHttpClient okHttpClient;

    okHttpClient = new OkHttpClient();
    okHttpClient.setConnectTimeout(10, TimeUnit.SECONDS);

    picasso = new Picasso.Builder(this)
            .downloader(new OkHttpDownloader(okHttpClient))
            .build();

Dies sollte Picasso eine Zeitüberschreitung von zehn Sekunden geben. Konfigurieren Sie es nach Ihren Bedürfnissen.

Vollständige Offenlegung: Ich verwende kein Zeitlimit. Ich habe das nur in der API bemerkt. Das könnte völlig falsch sein, haha.

2voto

bhargavg Punkte 1383

Sie haben zwei Optionen:

  1. Unterklasse eine Downloader-Klasse. Hier klicken für eine Referenzimplementierung
  2. Konfigurieren Sie OkHttpClient mit Timeouts im Voraus und übergeben Sie ihn an Picasso

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X