将ImageView保存到Android Emulator Gallery

时间:2012-04-28 09:28:05

标签: android file-io io android-imageview android-gallery

我想将图片保存到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中测试将图像保存到图库的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

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

Bitmap b = image.getDrawingCache();
Images.Media.insertImage(getContentResolver(), b, title, description);
如果您不关心设置它们,则

titledescription可以为null。如果返回的Uri为非null,则插入成功。