修改您的 ImageDownloader 类以像这样保存图像:
download(String url, ImageView imageView, Boolean saveData)
- 在你的 ID 类中创建一个全局变量 saveData :
私有布尔保存数据;
并将下载dmethod中作为参数给出的值存储在其中:
this.saveData = 保存数据;
- BitmapDownloaderTask 的 onPostExecute 方法应如下所示:
@Override protected void onPostExecute(Bitmap bitmap) { if (isCancelled()) { bitmap = null; }
addBitmapToCache(url, bitmap);
if (saveData == true) {
try {
FileOutputStream out = new FileOutputStream(path);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
} catch (Exception e) {
e.printStackTrace();
}
}
if (imageViewReference != null) {
ImageView imageView = imageViewReference.get();
BitmapDownloaderTask bitmapDownloaderTask = getBitmapDownloaderTask(imageView);
// Change bitmap only if this process is still associated with it
if (this == bitmapDownloaderTask) {
imageView.setImageBitmap(bitmap);
}
}
}
其中 path 是您要保存图像的路径。
下次要加载图像之前,您必须查看它是否已经下载并从路径加载,否则调用 ImageDownloader。
而已!请享用!