我想将图片保存到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中测试将图像保存到图库的正确方法是什么?
答案 0 :(得分:3)
由于您已经拥有Bitmap
,因此您可以使用此代码将其插入到图库中:
Bitmap b = image.getDrawingCache();
Images.Media.insertImage(getContentResolver(), b, title, description);
如果您不关心设置它们,则 title
和description
可以为null。如果返回的Uri
为非null,则插入成功。