Подтвердить что ты не робот

Как сохранить изображение в галерее 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();
        }
4b9b3361

Ответ 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);
                    }
                });

Подробнее