我正在尝试将运行时从 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 天,但没有找到有关此问题的任何信息。非常感谢任何帮助