OutOfMemoryException beim Laden großer Bilder mit glide

Also, ich habe diese erstaunliche Bibliothek benutztGleite zum Anzeigen von nativen Bildern in meiner Galerie-App. Ich benutzeViewPager mitFragmentStatePagerAdapter, um Bilder in voller Größe anzuzeigen. Das Off-Screen-Limit des Pagers ist1 (Standard, um Speicherplatz zu sparen). Ich verwende diesen Code, um Bilder in @ zu ladViewPager in meinem Fragment:

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

Now, ich stehe hier vor einigen Problemen wie:

as Laden von @Images nimmt ziemlich viel Zeit in Anspruch (wenn nicht zwischengespeichert). Während der Benutzer durch den Viewpager scrollt, wird ein leerer Bildschirm angezeigt, während das Bild geladen wird, was ich vermeiden möchte. Kann ich das auf irgendeine Weise tun? Vielleicht, indem Sie Bilder vorab zwischenspeichern?Manchmal beim Scrollen durch große Bilder (hauptsächlich Kamerafotos)OOM Ausnahme wird geworfen und der Benutzer hat keinen leeren Bildschirm, da kein Bild geladen wird. Dies passiert auch, wenn ich vom Hochformat- in den Querformatmodus wechsle. Also habe ich versucht, Methoden wie @ zu verwendatMost() - wodurch sich die Bildqualität weiter verschlechtert, da Bilder bereits in @ geladen siRGB_565 undapproximate() was auch OOM verursacht. Wie kann ich eine maximale Bildqualität erzielen, ohne OOM-Ausnahmen zu erhalten?

Für die zweite Ausgabe habe ich darüber nachgedacht, Bilder mit geringerer Qualität für die Objekte außerhalb des Bildschirms zu laden und dann die Qualität zu verbessern, wenn sie auf dem Bildschirm erscheinen. Ist es möglich

Ich habe auch versucht, @ zu verwendARGB_8888 aber das Ergebnis war dasselbe: OOM-Ausnahme.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage