2016-11-17 2 views
1

Ich benutze diese Codezeilen (ich benutze die Picasso-Bibliothek), um ein Bild herunterzuladen und es in den Hintergrund meines RelativeLayout zu laden.Android Studio Picasso Loader funktioniert nicht, nachdem ich die App zum ersten Mal ausgeführt habe

Die Sache ist, dass wenn ich die App mit meinem Emulator zum ersten Mal laufen alles gut geht. Das Problem ist, dass das nächste Mal, wenn ich die App laufe, es nie funktioniert, der Hintergrund ändert sich nie. Ich kann dir versichern, dass ich nichts im Code ändere.Ich drücke einfach nochmal die App.Wenn ich jedoch eine einzelne Codezeile ändere, mache ich zum Beispiel einige Kommentare zB: // blah blah und wenn ich run drücke Es funktioniert wieder, obwohl die Kommentare keine Funktionalität haben. Und wie zuvor, wenn ich die App erneut drücke, ohne den Code zu ändern, ändert sich der Hintergrund nie. Gibt es einen Fehler oder bin ich verfolgt?

EDIT: nach einigen logchat Ausgänge entdeckte ich, dass ich das erste Mal die App laufen, die logchat zeigt, dass onBitmapLoaded() läuft und alles funktioniert. Die anderen Male, die ich die app logchat ausführen zeigt, dass OnPrepareLoad() läuft und legt den Hintergrund zu meinem Platzhalter wegen dieses Problems W/Einstellungen: Einstellung airplane_mode_on wurde von android.provider.Settings.System nach android.provider.Settings.Global bewegt , Rückgabewert schreibgeschützt.

Antwort

1

Ich habe endlich die Antwort gefunden. Ich dachte durch die Codierung, die ich schon gemacht habe, würde das Zielobjekt nicht als Müll betrachtet werden. Leider lag ich falsch und ich musste diese Codezeile hinzufügen, um sie stabil und korrekt zu machen. Ich füge es hier für andere, die das gleiche Problem haben wie ich:

relative_layout.setTag(target); 
0

Stellen Sie sicher, dass Instant Run deaktiviert ist, da dies bekanntermaßen zu Problemen mit nicht ordnungsgemäß aktualisierendem Code führt.

Wenn das Problem weiterhin besteht, wechseln Sie zu File -> Invalidate Caches/Restart... und starten Sie Android Studio neu.

+0

Nein, ich habe sie beide. Der erste funktioniert überhaupt nicht. Und der zweite funktioniert nur zum ersten Mal mit der App. –

0

Verwenden AQuery diese beste holen/download Bild von URL zur Laufzeit

App-Ebene gradle Eintrag ** kompilieren ‚com.googlecode.android-Abfrage: android-Abfrage: 0,24. ** 3'

Wie verwenden:

ImageView img= (ImageView) findViewById(R.id.image); 

    AQuery aQuery = new AQuery(img); 

    aQuery.id(img).image("http://i.imgur.com/D3IBDDS.jpg",true, true); 

auf dem zweiten Argument zwei boolesche Werte für Datei-Cache und Speicher-Cache steht, wenn Ihr Bild Ansicht Verwendung s ame URL zweites Mal dann kein Download wieder und wieder wird es das gleiche Bild aus dem Cache verwenden.

  1. Schnell
  2. Einfache
  3. leicht
  4. zu bedienen Es hat viel Funktion wie Cache-Speicher und Dateicache, Standardbild in keiner Antwort des Servers, können Sie Fortschrittsbalken verwenden, bis Bild Zeit in Anspruch nimmt zum Download, schnelle Reflektion in ListView und RecyclerView.
+0

Nun, ich möchte kein Bild für eine Bildansicht herunterladen.Picasso funktioniert perfekt mit Picasso für mich. Ich möchte ein Bild herunterladen und es als Hintergrund für das RelativeLayout festlegen. In diesem Fall muss ich das Bild herunterladen und es in ein BitmapDrawable wie in den obigen Codezeilen einfügen. Dies ist der Grund, warum ich Picasso brauche. –

Verwandte Themen