2

我正在尝试将运行时从 Internet 下载的一些图像保存到外部存储中,以便我可以直接读取它们而不是再次下载。除了占用太多空间之外,一切都运行良好。如果我将相同的图像存储在内部存储中,它只需要大约 300kb,但对于外部存储,它需要将近 1.7mb。

有人可以解释为什么会这样。

这是我用于将文件存储在外部存储器中的代码。

public void saveImage(Context ctx, Bitmap b,String name){ //for external storage
    FileOutputStream out;
    try {
        File file = new File(ctx.getExternalFilesDir(null), name);
        out = new FileOutputStream(file);
        b.compress(Bitmap.CompressFormat.JPEG, 80, out);
        out.close();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

以下一个用于将文件存储在内部存储器中

public void saveImage(Context ctx, Bitmap b,String name){
    FileOutputStream out;
    try {
        out = ctx.openFileOutput(name, Context.MODE_PRIVATE);
        b.compress(Bitmap.CompressFormat.JPEG, 80, out);
        out.close();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

这个方法两次都是从同一个地方调用的,但是当我检查使用的内存时,有很大的不同。

我正在搜索过去 2 天,但没有找到有关此问题的任何信息。非常感谢任何帮助

4

0 回答 0