2 csh 34 csh_34 于 2012.12.25 17:38 提问

在内部存储器如何存储图像?

我想在内部存储器(不是外部存储器)存储 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;
    } 

2个回答

Baby_Bonnie
Baby_Bonnie   2012.12.25 18:02
已采纳

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);
}
nana4ever
nana4ever   2013.01.08 13:57

问题是你使用 .toString(),而不是把位图压缩到 FileOutputStream:

FileOutputStream out = new FileOutputStream(filename);
outputImage.compress(Bitmap.CompressFormat.PNG, 90, out);

内部存储也可以通过上下文检索。

File cacheDir = context.getCacheDir();
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!