使用Android universal-image-loader将当前视图中的图像保存到SD卡

时间:2014-03-28 15:02:41

标签: android universal-image-loader

我是Android新手开发者。我使用通用图像加载器加载了一个图像,我想将它保存在我的SD卡上。文件是在所需目录中使用正确的文件名创建的,但它的大小始终为0.我做错了什么?

相关摘录如下:

PS:图像已存在于磁盘上,但未从Internet下载。

private void saveImage(String imageUrls2, String de) {
        String filepath = Environment.getExternalStorageDirectory()
                .getAbsolutePath();
        File SDCardRoot = Environment.getExternalStorageDirectory()
                .getAbsoluteFile();     
        String filename = de;
        File myDir = new File(SDCardRoot+"/testdir");
        Bitmap mSaveBit = imageLoader.getMemoryCache();
        File imageFile = null;

        try {           
            //create our directory if it does'nt exist
            if (!myDir.exists())
                myDir.mkdirs();

            File file = new File(myDir, filename);
            if (file.exists())
                file.delete();

            FileOutputStream fileOutputStream = new FileOutputStream(file);
            BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);

            bos.flush();
            bos.close();

        } catch (IOException e) {
            filepath = null;
            e.printStackTrace();
            Toast.makeText(getApplicationContext(),
                    R.string.diskful_error_message, Toast.LENGTH_LONG)
                    .show();
        }
        Log.i("filepath:", " " + filepath);
    }

1 个答案:

答案 0 :(得分:1)

是的,您的代码仅在sdcard_root / testdir / de上创建一个文件,并且没有向它写任何内容。 “imageUrls2”是源图像文件吗?如果是,您可以使用BufferedInputStream打开该文件,从BufferedInputStream读取数据,并使用bos.flush()和bos.close()之前的bos.write()将它们复制到输出文件。

希望它有所帮助。