Страница 1 из 1

Загрузка больших файлов?

Добавлено: 04 дек 2014, 13:36
Merfi
Добрый день.

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

Подскажите, пожалуйста, удачный план по работе с ними.

На данный момент реализован функционал, который работает не корректно, если картинка большая (качественная фуллхд, например).

Код: Выделить всё

// где-то внутри ASyncTask
URL url = new URL(str);
URLConnection con = url.openConnection();

InputStream inputStream = con.getInputStream();
BufferedInputStream bis = new BufferedInputStream(inputStream, 4*1024);

ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
    baf.append((byte)current);
}
data = baf.toByteArray();
эта /data/ проходит через base64.encode и сохраняется в sqlite и когда нужна картинка - достается и выводится. Как я уже сказал, если картинка большая, то ничего не работает и ... В дебаге я не имею никаких ошибок связанных этим.

Вопрос такой: какие есть правильные способы работы с большими картинками? На входе ссылка на неё.

Re: Загрузка больших файлов?

Добавлено: 05 дек 2014, 17:01
KamiSempai
Merfi писал(а):Вопрос такой: какие есть правильные способы работы с большими картинками?
Сохранять их в файлы а не в базу. Это верно как для больших картинок так и для маленьких.