1

我想将图像保存到 Android 图库,这是我当前的代码:

image.setDrawingCacheEnabled(true);

image.buildDrawingCache(true);
Bitmap b = image.getDrawingCache();

if(!new File("/"+Environment.DIRECTORY_PICTURES).exists())
    Log.e("Error","/"+Environment.DIRECTORY_PICTURES+" Dont exist");

File file = new File(Environment.DIRECTORY_PICTURES+"/myImage.jpg");
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
b.compress(CompressFormat.JPEG, 80, ostream);
image.setDrawingCacheEnabled(false);
ostream.close();
Toast.makeText(Ads.this, "Offer saved", 1).show();

它总是返回相同的错误:

Error: /Pictures Dont exist

然后是一个 IOException:

java.io.IOException: open failed: ENOENT (No such file or directory)

这是在 4.0 Android 虚拟设备上。我也尝试使用Environment.getRootDirectory()获取 AVD 的根目录,但我仍然收到相同的错误。

在 AVD 中测试将图像保存到图库的正确方法是什么?

4

1 回答 1

4

因为,您已经拥有了,Bitmap您可以使用此代码将其插入到图库中:

Bitmap b = image.getDrawingCache();
Images.Media.insertImage(getContentResolver(), b, title, description);

titledescription如果您不关心设置它们,则可以为 null。如果Uri返回非空,则插入成功。

于 2012-04-28T09:51:11.460 回答