java.lang.OutOfMemoryError при преобразовании более 100 строк в байтовые массивы

Во-первых, я понимаю вопросы, касающиесяjava.lang.OutOfMemoryError а растровые изображения уже задавались много раз раньше. Я также проверилЭффективное отображение растровых изображений стр.

Мой вариант использования:

Я храню два разных размера битовых карт в виде строк в базе данных SQLite. Первый размер растровых изображений составляет 50% ширины экрана, а второй размер составляет 100% ширины экрана.

Я использую RecyclerView, который отображает изображения в ImageViews, которые составляют 50% или 100% ширины экрана, поэтому растровые изображения загружаютсяне больше, чем нужно, и они имеют соответствующий размер, прежде чем изображения будут извлечены из базы данных.

Я также загружаю растровые изображения, используя AsyncTask.

У меня есть более 180 различных элементов в RecyclerView, поэтому у меня есть в общей сложности более 360 растровых изображений (т.е. числоOfimages * theDifferentSizesOfEachImage). Я покрываю строковые версии изображений в байтовые массивы с помощью этого кода:byte [] byteArray = Base64.decode(encodedString, Base64.DEFAULT);

Эта проблема

Деятельность смогла загрузить около 170 различных изображений безjava.lang.OutOfMemoryError, если только я не перезапустил то же действие (например, загрузил действие, затем заново создал действие, щелкнув по нему снова в окне навигации, а затем повторив этот процесс), и взял на себяjava.lang.OutOfMemoryError при преобразовании строк в байтовые массивы.

Я преобразую массив байтов в растровое изображение, используяскольжение библиотека с использованием следующего кода:

 Bitmap bitmap = Glide.with(context).load(byteArray).asBitmap()
 .dontTransform().dontAnimate().skipMemoryCache(true)
 .diskCacheStrategy(DiskCacheStrategy.NONE).into(-1, -1).get();

Мой вопрос в двух словах

Как мне избежатьjava.lang.OutOfMemoryError происходит, пока я конвертирую строки в байтовые массивы?

Заметка

После создания растрового изображения с помощью Glide я вызываю recycle () для данного растрового изображения и затем устанавливаю его вnull.

Я также уже используюandroid:largeHeap="true" в моем Android манифесте

заранее спасибо

редактировать

Вот как я создаю растровые строки:

 ByteArrayOutputStream baos = new  ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.WEBP,100, baos);
        byte [] b =baos.toByteArray();
     String bitmapString = Base64.encodeToString(b, Base64.DEFAULT);

Ответы на вопрос(1)

Ваш ответ на вопрос