Tôi đang cố hiển thị tin tức của mình trong một tùy chỉnh ListView. Mỗi tin tức được bao gồm một số hình ảnh và tôi muốnTải xuống và lưu hình ảnh bằng Picasso
1.download hình ảnh từ máy chủ
2.save trong lưu trữ địa phương
3.save đường của hình ảnh vào SQLite
4.show hình ảnh trong ListView sử dụng bộ điều hợp tùy chỉnh của tôi.
Tôi chỉ gặp sự cố với các bước & . Tôi có thể lấy tin tức từ máy chủ và hiển thị chúng trong ListView của tôi
và hiển thị hình ảnh từ bộ nhớ cache bằng cách thêm vào dưới đây mã trong bộ chuyển đổi của tôi:
Picasso.with(context).load(image[position]).into(iv);
Bằng cách sử dụng Picasso.with(context).load(image[position]).into(target)
, chỉ cần tôi có thể tiết kiệm một
image trong bộ nhớ.
Xin gợi ý cho tôi ý tưởng của bạn ...
CẬP NHẬT: Khi tôi sử dụng bên dưới mã, chỉ là một hình ảnh (chỉ số cuối của mảng hình ảnh của tôi) đang được lưu!
Làm cách nào để lưu tất cả hình ảnh trong mảng bằng mã này ?!
@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) {
}
};
bạn có thể sử dụng trình tải hình ảnh phổ thông hoặc bộ tải hình ảnh chung thay thế. –
hãy xem câu trả lời này http://stackoverflow.com/a/27720638/1576416 –
@ chet's, tôi đã tải xuống Thư viện UIL, nhưng tôi cũng không thể giải quyết được vấn đề của mình với nó! Bạn có thể vui lòng cho tôi mã đơn giản không? –