Вопрос по android, file-io – Сохранить изображение в галерее эмулятора Android
Я хочу сохранить изображение в галерее Android, вот мой текущий код:
<code>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(); </code>
Всегда возвращает одну и ту же ошибку:
<code>Error: /Pictures Dont exist </code>
Тогда IOException:
<code>java.io.IOException: open failed: ENOENT (No such file or directory) </code>
Это на виртуальном устройстве Android 4.0.
Я пытался использоватьEnvironment.getRootDirectory()
чтобы получить корневой каталог AVD также, но я все еще получаю те же ошибки.
Как правильно сохранить изображение в галерее в формате AVD?
1
ответ
Так как у вас уже естьBitmap
Вы можете использовать этот код, чтобы вставить его в галерею:
Bitmap b = image.getDrawingCache();
Images.Media.insertImage(getContentResolver(), b, title, description);
title
а такжеdescription
может быть нулевым, если вы не заботитесь об их установке. ЕслиUri
возвращается не ноль, то вставка прошла успешно.
В каждом уроке о сохранении изображений в Галерее я никогда не упоминал этот метод! Черт, все было так просто! Благодарю.