Как сохранить изображение в галерее Android
Я пытаюсь сохранить изображение в WathsappIMG, но когда я иду в андроид галереи изображений, я не вижу изображение, а изображение в нем можно увидеть из ES File Explorer
OutputStream output;
// Find the SD Card path
File filepath = Environment.getExternalStorageDirectory();
// Create a new folder in SD Card
File dir = new File(filepath.getAbsolutePath()
+ "/WhatSappIMG/");
dir.mkdirs();
// Retrieve the image from the res folder
BitmapDrawable drawable = (BitmapDrawable) principal.getDrawable();
Bitmap bitmap1 = drawable.getBitmap();
// Create a name for the saved image
File file = new File(dir, "Wallpaper.jpg" );
try {
output = new FileOutputStream(file);
// Compress into png format image from 0% - 100%
bitmap1.compress(Bitmap.CompressFormat.JPEG, 100, output);
output.flush();
output.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Ответы
Ответ 1
галерея не отображает (обязательно) файлы из внешнего хранилища.
Это обычная ошибка.
в галерее отображаются изображения, хранящиеся в магазине медиа-магазина
вы можете использовать этот метод для хранения файла изображения в магазине медиа-магазина:
public static void addImageToGallery(final String filePath, final Context context) {
ContentValues values = new ContentValues();
values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.MediaColumns.DATA, filePath);
context.getContentResolver().insert(Images.Media.EXTERNAL_CONTENT_URI, values);
}
Ответ 2
вот что вам следует ввести, когда вы собираетесь сохранить изображение в галерее
MediaStore.Images.Media.insertImage(getContentResolver(), yourBitmap, yourTitle , yourDescription);
Этот код добавит изображение в конце Галереи. поэтому, пожалуйста, проверьте изображение галереи, чтобы быть уверенным
Ответ 3
Попробуйте добавить это:
MediaStore.Images.Media.insertImage(getContentResolver(), yourBitmap, yourTitle , yourDescription);
Заполните свои данные для своих битов, yourTitle и yourDescription или просто оставьте его как ""
.
Ответ 4
Вы должны изменить этот фрагмент кода -
try {
output = new FileOutputStream(file);
// Compress into png format image from 0% - 100%
bitmap1.compress(Bitmap.CompressFormat.JPEG, 100, output);
output.flush();
output.close();
String url = Images.Media.insertImage(getContentResolver(), bitmap1,
"Wallpaper.jpg", null);
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Ответ 5
Вам нужно добавить класс MediaScannerConnection в функцию сохранения изображения в галерее. Этот класс сканирует новые файлы и папки в галерее, связанной с вашим приложением. Добавьте следующий класс для сканирования вновь сохраненных файлов изображений или нового каталога добавленных изображений в галерею или скачать исходный код
MediaScannerConnection.scanFile(this, new String[]{file.toString()}, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
Подробнее