防止用新图像替换以前的图像(android)

防止用新图像替换以前的图像(android),android,image,android-image,environment,fileoutputstream,Android,Image,Android Image,Environment,Fileoutputstream,我正在使用壁纸应用程序下载图像,但我有图像替换问题 当我下载新图片时,它会被以前的图片所取代 这是我的代码: public void saveImageToSDCard(Bitmap bitmap) { String dirname = "/Amazing Wallpapers/"; File myDir = new File(Environment .getExternalStorageDirectory().getPath()

我正在使用壁纸应用程序下载图像,但我有图像替换问题

当我下载新图片时,它会被以前的图片所取代

这是我的代码:

public void saveImageToSDCard(Bitmap bitmap) {
        String dirname = "/Amazing Wallpapers/";

        File myDir = new File(Environment
                .getExternalStorageDirectory().getPath() + dirname);

        myDir.mkdirs();

        String str = currentUrl.substring(
                currentUrl.lastIndexOf('/')+1,
                currentUrl.length());

        String fname = "Wallpaper-" + str +  ".jpg";
        File file = new File(myDir, fname);
        if (file.exists())
            file.delete();
        try {
            FileOutputStream out = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
            out.flush();
            out.close();
            Toast.makeText(
                    _context,
                    _context.getString(R.string.toast_saved).replace("#",
                            "\"" + pref.getGalleryName() + "\""),
                    Toast.LENGTH_SHORT).show();
            Log.d(TAG, "Wallpaper saved to:" + file.getAbsolutePath());

        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(_context,
                    _context.getString(R.string.toast_saved_failed),
                    Toast.LENGTH_SHORT).show();
        }
    }

只需使用当前的
日期
时间(毫秒)作为
文件的唯一标识符
。像这样:

 String str = String.valueOf(System.currentTimeMillis());

我测试了你的代码,它正在工作

好的,它工作了,但产生了新的问题,问题是现在我可以保存相同的图像多次。但我不想保存同一个图像多次,如果它已经exist@android问题是,你必须想办法知道哪些文件已经保存并检查它。例如,ViewPager页面的位置。或者文件名。如果我的答案对您有帮助,请接受/更新我的答案。