Загрузка изображений с использованием адаптера синхронизации

После того, как изображение выбрано и вызван onActivityResult, я создаю миниатюру, чтобы обновить исходный вид активности. Я также уменьшаю изображение и сохраняю его во временной папке, откуда оно затем берется адаптером синхронизации для загрузки на сервер.

Для хранения уменьшенной версии изображения я использую AsyncTask. Проблема в том, что процедура хранения файлов идет медленно и может занимать до 10 секунд.

File pictureFile = getOutputMediaFile();
FileOutputStream fos = new FileOutputStream(pictureFile);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.close;

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

Кто-нибудь делал что-то подобное? Существуют ли шаблоны для обработки подобных ситуаций и т. Д.?

1 ответ

Я сделал что-то подобное в одном из моих приложений. Вы можете сохранить изображение в асинхронной задаче и иметь загрузочный счетчик (на панели действий или где угодно), пока файл не будет сохранен,

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

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