OutOfMemoryException al cargar imágenes de gran tamaño con deslizamiento

Entonces, he estado usando esta increíble bibliotecaDeslizamiento para mostrar imágenes nativas en la aplicación de mi galería. estoy usandoViewPager conFragmentStatePagerAdapter para mostrar imágenes a tamaño completo. El límite fuera de la pantalla del localizador es1 (predeterminado para ahorrar memoria). Estoy usando este código para cargar imágenes enViewPager en mi fragmento

Glide.with(getActivity())
     .loadFromMediaStore(uri)
     .asBitmap()
     .signature(new MediaStoreSignature(mimeType, dateModified, 
     .into(mImageView);

Ahora, estoy enfrentando algunos problemas aquí como:

Las imágenes tardan bastante tiempo en cargarse (si no se almacenan en caché). Entonces, mientras el usuario se desplaza por el visor, se muestra una pantalla en blanco mientras se carga la imagen, que es lo que quiero evitar. ¿Hay alguna manera de que pueda hacer esto? Tal vez por precaching imágenes?A veces, mientras se desplaza a través de imágenes de gran tamaño (principalmente fotos de la cámara)Excepción OOM se arroja y el usuario se queda con la pantalla en blanco ya que no se carga ninguna imagen. Esto también sucede cuando estoy cambiando de modo vertical a horizontal. Entonces, traté de usar métodos comoatMost() - que degradan aún más la calidad de la imagen ya que las imágenes ya están cargadas enRGB_565 yapproximate() que también está causando OOM. ¿Cómo puedo lograr la máxima calidad de imagen sin obtener excepciones OOM?

Para el segundo problema, estaba pensando en cargar imágenes de menor calidad para los elementos fuera de pantalla y luego mejorar la calidad cuando aparecen en pantalla. ¿Es posible?

También he tratado de usarARGB_8888 pero el resultado fue el mismo: excepción OOM.

Respuestas a la pregunta(1)

Su respuesta a la pregunta