Ich versuche, meine Nachrichten in einem benutzerdefinierten ListView zu zeigen. Jede Nachrichten aus einigen Bilder enthalten, und ich möchteHerunterladen und Speichern von Bildern mit Picasso
1.download Bilder vom Server
2.save im lokalen Speicher
3.save Weg von Bilder in SQLite
4.show Bilder in ListView mit meinem benutzerdefinierten Adapter.
Ich habe nur Probleme mit den Schritten & . Ich kann Nachrichten vom Server erhalten und zeigen sie in meinem Listview
und zeigen Bilder aus dem Cache von unten Code in meinem Adapter hinzufügen:
Picasso.with(context).load(image[position]).into(iv);
von Picasso.with(context).load(image[position]).into(target)
verwenden, nur kann ich sparen eine
Bild im Speicher.
Bitte machen Sie uns Ihre Idee ...
UPDATE: Wenn ich Code unten verwenden, nur ein Bild (letzter Index meines Bild Array) gespeichert werden!
Wie kann ich alle Bilder in Array mit diesem Code speichern ?! "Picasso.with (this) .load (Bild [i]) in (Ziel);"
@Override
protected void onPostExecute(Void result) {
SaveImages();
pDialog.dismiss();
super.onPostExecute(result);
}
String fileName = null;
public void SaveImages() {
for(int i = 0; i < image.length; i++) {
Picasso.with(this).load(image[i]).into(target);
fileName = "image-" + i + ".jpg";
}
}
Target target = new Target() {
@Override
public void onPrepareLoad(Drawable arg0) {
}
@Override
public void onBitmapLoaded(Bitmap bitmap, LoadedFrom arg1) {
File file = new File(Environment.getExternalStorageDirectory().getPath() +"/" + fileName);
try {
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.JPEG, 75, ostream);
ostream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onBitmapFailed(Drawable arg0) {
}
};
können Sie alternativ Lazylist oder Universal Image Loader verwenden. –
werfen Sie einen Blick auf diese Antwort http://stackoverflow.com/a/27720638/1576416 –
@ chet's, ich habe UIL-Bibliothek heruntergeladen, aber ich kann mein Problem damit auch nicht lösen !!! Könnten Sie mir bitte einen einfachen Code geben? –