エッジ:
私は、ユーザーがサーバーから画像を保存することが可能な機能を実装します。ここに私のコードです。
BasicImageDownloader imageDownloader = new BasicImageDownloader(new BasicImageDownloader.OnImageLoaderListener()
{
@Override
public void onError(BasicImageDownloader.ImageError error)
{
Toast.makeText(mContext, "Error code " + error.getErrorCode() + ": " + error.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onProgressChange(int percent)
{
}
@Override
public void onComplete(Bitmap result)
{
final Bitmap.CompressFormat mFormat = Bitmap.CompressFormat.JPEG;
final File myImageFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator
+ "Android" + File.separator
+"data" +File.separator
+"test" +File.separator
+ "profileimage" +File.separator
+ mPost.get(i).getUid() + "." + mFormat.name().toLowerCase());
BasicImageDownloader.writeToDisk(myImageFile, result, new BasicImageDownloader.OnBitmapSaveListener() {
@Override
public void onBitmapSaved() {
Toast.makeText(mContext, "Image saved as: " + myImageFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
}
@Override
public void onBitmapSaveError(BasicImageDownloader.ImageError error) {
Toast.makeText(mContext, "Error code " + error.getErrorCode() + ": " +
error.getMessage(), Toast.LENGTH_LONG).show();
error.printStackTrace();
}
}, mFormat, false);
}
});
imageDownloader.download("link", true);
それは素晴らしい作品が、同じ名前が保管場所に存在する時はいつでも。これは、例外をスロー:「ファイルが既にある存在します」。今の問題は、同じファイルが格納場所に存在する時はいつでもダウンロードした画像を交換する方法ですか?
somega:
私は、ウェブ上でBasicImageDownloaderクラスを発見しました。writeToDiskの最後のパラメータは上書き用です。あなたはこのようにtrueに設定している場合ので:
BasicImageDownloader.writeToDisk(..., true);
それは、ファイルを上書きする必要があります。