ImageDownloaderクラスを変更して、次のように画像を保存します。
- 次のようなダウンロードメソッドにパラメータを追加します。
download(String url, ImageView imageView, Boolean saveData)
- yout IDクラスでグローバル変数saveDataを作成します:
プライベートブールsaveData;
ダウンロードdmethodでパラメータとして指定された値をその中に格納します。
this.saveData = saveData;
- BitmapDownloaderTaskのonPostExecuteメソッドは次のようになります。
@Override protected void onPostExecute(Bitmapビットマップ){if(isCancelled()){ビットマップ= 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を呼び出します。
それでおしまい!楽しい!