Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to cache images in Glide

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:

screenshot

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.

like image 485
Katona Tamas Avatar asked Jan 08 '18 14:01

Katona Tamas


People also ask

How do you cache images on Glide?

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?

What is disk cache strategy in Glide?

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.

Where does glide save images?

The image picker is pretty basic. Images are stored in Firebase and limited to 10mb files.


2 Answers

Please Read the Description below as per official documentation : https://futurestud.io/tutorials/glide-caching-basics

enter image description here

enter image description here

like image 134
Saurabh Mistry Avatar answered Oct 12 '22 12:10

Saurabh Mistry


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

like image 44
Abhishek kumar Avatar answered Oct 12 '22 12:10

Abhishek kumar