问题描述
- 在内部存储器如何存储图像?
-
我想在内部存储器(不是外部存储器)存储 bitmap图像。我使用以下代码但是不能实现。因为当我从DDMS中下载图像,我不能打开图像。如何在内部存储器中存储图像?public String writeFileToInternalStorage(Context context, Bitmap outputImage) { String fileName = Long.toString(System.currentTimeMillis()) + ".png"; try { OutputStreamWriter osw = new OutputStreamWriter(context.openFileOutput(fileName, Context.MODE_PRIVATE)); osw.write(outputImage.toString()); Log.i(TAG, "Image stored at: " + fileName); } catch (Exception e) { Log.w(TAG, e.toString()); fileName = null; } return fileName; }
解决方案
outputImage.toString()不是图像,你放在文件中的contact不是二进制数,而是数组。
方法是这样的:
public String writeFileToInternalStorage(Context context, Bitmap outputImage) {
String fileName = Long.toString(System.currentTimeMillis()) + ".png";
final FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);
outputImage.compress(CompressFormat.PNG, 90, fos);
}
解决方案二:
问题是你使用 .toString()
,而不是把位图压缩到 FileOutputStream:
FileOutputStream out = new FileOutputStream(filename);
outputImage.compress(Bitmap.CompressFormat.PNG, 90, out);
内部存储也可以通过上下文检索。
File cacheDir = context.getCacheDir();
时间: 2024-12-27 21:46:58