Ошибка сохранения растрового изображения Android. сохранение изображения неверно, обновите галерею после сохранения изображения на SD-карту

Я создал функцию для сохранения выбранного изображения из галереи. Я понимаю, что когда изображение сохраняется в первый раз, все в порядке. Но если процесс начинается снова, кажется, что изображение сохраняется (с тем же именем), но изображение не меняется в проводнике. Оно просто сохраняет старое растровое изображение. Я тестировал на двух разных устройствах, но результат тот же. На самом деле на Infinix hot 7, но результат тот же.

public static String saveImage(Bitmap bitmap, File[] folders, File file, Context context) {

    for (File folder:folders) {
        if (!folder.exists()) {
            folder.mkdirs();
        }
    }

    if (file.exists ()) {
        file.delete();
    }

    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

    try {
        FileOutputStream out = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
        out.flush();
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

Ошибка сохранения растрового изображения Android. сохранение изображения неверно, обновите галерею после сохранения изображения на SD-карту

Ошибка сохранения растрового изображения Android. сохранение изображения неверно, обновите галерею после сохранения изображения на SD-карту

Вы можете видеть, что я выбрал фотографию зеленой природы, но она регистрирует фотографию старого красного дерева.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

После сохранения изображения в галерее вы должны обновить изображение до системы для галереи и проводника.

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(myNewFile)));

Большое спасибо. Это сработало для галереи, но не для исследователя.

Ebenezer Nikabou 28.05.2019 10:43

Хорошо, я рад, что это сработало, и проверьте файл в другом проводнике, например, в проводнике es и т. д.

Quick learner 28.05.2019 11:12

Спасибо. Это работает с некоторыми проводниками, но не с некоторыми

Ebenezer Nikabou 28.05.2019 11:40

хорошо, я знал, потому что это также зависит от проводника, который вы используете. это проблема с эксплорером

Quick learner 28.05.2019 11:42

Другие вопросы по теме