我试图将运行期间从互联网下载的一些图像保存到外部存储器中,以便我可以直接读取它们而不是再次下载。 一切都运作良好,除了它占用太多空间。 如果我在内部存储中存储相同的图像,它只需要大约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天,但没有找到任何关于此问题的信息。 任何帮助都非常感谢