When I use glide, some images doesn't loads. How can I store it in the cache, or anywhere, to when I'll use the app all my images loads. Example picture of my problem:
My code:
.java
home_ib7_monster_truck =
(ImageButton)findViewById(R.id.home_ib7_monster_truck);
Glide.with(Home.this)
.load(R.drawable.moviep_monster_truck)
.centerCrop()
.fitCenter()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(home_ib7_monster_truck);
.xml
<ImageButton
android:id="@+id/home_ib7_monster_truck"
android:layout_width="98dp"
android:layout_height="155dp"
android:layout_alignStart="@+id/home_ib4_keplers_dream"
android:layout_below="@+id/home_ib4_keplers_dream"
android:layout_marginTop="14dp"
android:background="@android:color/transparent"
android:scaleType="fitCenter" />
I use glide 'cause I saw it's easy to use, and I can load images from drawables. And the main problem is, that it do this randomly, so I mean once all my images are doesn't seems, another time all images can see, and I don't know why. I use 980x1550 sized images, 'casuse I don't want my images beign full of pixels, and when I use another method like src in the .xml I got memory error. So anyone know any soluton, how can I cache the images?
EDIT: With these (.diskCacheStrategy(DiskCacheStrategy.RESULT ; diskCacheStrategy(DiskCacheStrategy.Source) I have the same problem. I get this from LogCat: Throwing OutOfMemoryError "Failed to allocate a 1519012 byte allocation with 230112 free bytes and 224KB until OOM" and i don't know how, when it should be cached.
How Glide Cache Works. By default, Glide checks multiple layers of caches before starting a new request for an image: Active resources — Is this image displayed in another View right now? Memory cache — Was this image recently loaded and still in memory?
Disk Cache Strategies The available strategies allow you to prevent your load from using or writing to the disk cache or choose to cache only the unmodified original data backing your load, only the transformed thumbnail produced by your load, or both.
The image picker is pretty basic. Images are stored in Firebase and limited to 10mb files.
Please Read the Description below as per official documentation : https://futurestud.io/tutorials/glide-caching-basics
Glide will put all image resources into the memory cache by default. Thus, a specific call .skipMemoryCache( false )
is not necessary.
Hint: beware of the fact, that if you make an initial request to the same URL without the .skipMemoryCache( true )
and then with the method, the resource will get cached in memory. Make sure you're consistent across all calls to the same resource, when you want to adjust the caching behavior!
Referance: https://futurestud.io/tutorials/glide-caching-basics
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With