Ich benutze Picasso-Bibliothek, um Bild von einer URL zu erhalten.
Mein Problem ist, wenn ich ein Bild zum ersten Mal lade und ich gehe aus meiner App und nachdem ich zurückkomme, versucht meine App das Bild wieder zu laden, aber ich will es nicht passieren. Gibt es eine andere Möglichkeit, dies zu tun (Laden Sie nur einmal das Bild und in anderen Zeiten brauchen Sie nicht Internet zum Laden)?Bild mit Picasso-Bibliothek einmal laden
Antwort
Das Problem mit den oben genannten Antworten ist, dass sie die Verfügbarkeit der Bilder in dem Disk-Cache nur überprüfen, es erstreckt sich nicht auf die Teil, wenn das Bild nicht im Cache vorhanden ist, um online zu gehen und es abzurufen.
Zuerst machen Sie eine Klasse, die Anwendung erweitert (Sie können es nennen, was Sie wollen, die Ihre Anwendung nicht beeinträchtigt, meine Konvention ist "Global" zu verwenden).
public class Global extends Application {
@Override
public void onCreate() {
super.onCreate();
Picasso.Builder builder = new Picasso.Builder(this);
builder.downloader(new OkHttpDownloader(this,Integer.MAX_VALUE));
Picasso built = builder.build();
built.setIndicatorsEnabled(false);
built.setLoggingEnabled(true);
Picasso.setSingletonInstance(built);
}
}
Stellen Sie sicher, dependancy für OkHttp Bibliothek hinzufügen, wird es von den gleichen Jungs von Picasso
compile 'com.squareup.okhttp:okhttp:2.4.0'
und fügen Sie die Klasse in Ihrem Manifest-Datei Applications-Tag entwickelt:
android:name=".Global"
Dann Wenn Sie das Bild abrufen möchten:
Picasso.with(context)
.load(Image URL)
.networkPolicy(NetworkPolicy.OFFLINE)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
//Try again online if cache failed
Picasso.with(context)
.load(Image URL)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
Log.v("Picasso","Could not fetch image");
}
});
}
});
Die obige Methode überprüft, ob das Bild bereits zwischengespeichert ist, wenn es nicht aus dem Internet abgerufen wird.
danke.Aber wenn ich nicht die globale Klasse was passiert (in der Tat verstehe ich nicht, was es getan hat) –
Verwendung der Anwendungsklasse ist der Zugriff auf Variablen über die Anwendung, es ist eine gute Wahl, um alle zu setzen Diese Picasso-Einstellungen seit der Anwendungsklasse werden gestartet, bevor Aktivitäten oder Dienste ausgeführt werden. – RamithDR
Sie können über Anwendung Klasse lesen und es ist hier verwendet: http://StackOverflow.com/Questions/18002227/Why-Extend-AnAnwendung-Klasse – RamithDR
versuchen Sie dies:
Picasso.with(this).load(url).networkPolicy(NetworkPolicy.OFFLINE).into(imageView);
try this:
Picasso.with(this).invalidate(url);
Picasso.with(this)
.load(url)
.networkPolicy(
NetworkUtils.isConnected(this) ?
NetworkPolicy.NO_CACHE : NetworkPolicy.OFFLINE)
.resize(200, 200)
.centerCrop()
.placeholder(R.mipmap.ic_avatar)
.error(R.mipmap.ic_avatar)
.into(imageView);
und eine andere Sache, die ich an einer anderen Stelle gelesen, wenn das Bild nicht im Cache ist Auf diese Weise ein Problem machen. –
- 1. Bild mit Picasso laden
- 2. Bild mit Datenbindung laden
- 3. Meteor Vorlagen laden einmal einmal mit Sammlung undefiniert einmal mit ihm definiert
- 4. Bild in SD-Karte nach Picasso laden Bild laden
- 5. Bild laden
- 6. laden externes Bild mit jquery
- 7. Bild dynamisch laden mit angularjs
- 8. Bild speichern einmal Glide hat es geladen
- 9. Codeigniter Kopf- und Fußzeile nur einmal laden
- 10. Laden Sie mehrere Dateien auf einmal
- 11. DataGridViewImageCell async Bild laden
- 12. Picasso Bild laden Rückruf
- 13. jQuery Bild laden Rückruf
- 14. Bild laden optimieren
- 15. Android dynamisches Bild Laden
- 16. QML Bild laden Problem
- 17. Laden Bild in Leinwand - Bild skaliert
- 18. großes Bild laden Problem
- 19. Bild als Datei laden
- 20. Laden Bild im Cache mit enyo.js
- 21. IOS Schnelles Laden (lokales) Bild mit URL
- 22. Laden Sie ein Bild mit Google Volley
- 23. Ein großes Bild mit FCM laden
- 24. Laden Bild in Java mit JFrame
- 25. Laden Bild auf meinen Webserver mit Javascript
- 26. ein Bild in Wordpress mit jQuery laden
- 27. Anzeige laden Bild während Beitrag mit Ajax
- 28. Android: Laden Sie PNG-Bild mit Canvas
- 29. So laden Sie ein Bild mit jQuery
- 30. Making Bilder auf Bild laden mit jquery
Bitte geben Sie den Code für die Verwendung von Picasso ein. –
Verwenden Sie _Cache_ Strategie. – Piyush
Picasso.mit (Aktivität) .load (cv.getAsString ("Bild")). Platzhalter (R.mipmap.onloading) .error (R.mipmap.onloading) .into (ivpicture); –