Images come in all shapes and sizes. In many cases they are larger than required for a typical application user interface (UI). For example, the system Gallery application displays photos taken using your Android devices’s camera which are typically much higher resolution than the screen density of your device.
And when you start to need caching, transformations, and better performance, it’s natural to ask if someone else has solved this problem before you. Just a few months back, I found myself in that exact situation with one of our client apps. I researched some solutions, but didn’t find anything compelling enough to commit to.
Comparison of Top 10 Android Image Loading Library
Recommended article : How Android Image Loading Library Works?
Do you know : Problems with Android Oreo – 6 Things you need to know
So my feeling is that, if you have a large, stable, pre-existing project, you are probably better off using Picasso. Integration is painless, performance seems good, and if the fade-in works for you, you get some free visual fun, too.
If, on the other hand, your app is new, or if it’s small enough that you can think about swapping out the back end completely, and it deals mostly with small HTTP payloads, Volley is worth considering. Once you define your requests, using them from within a fragment or activity is painless. And unlike parallel AsyncTasks, you don’t have to worry about spinning up too many threads, or potential missteps with shared state.
Or what about using both at the same time? If Volley’s image management causes you severe pain, then you’re probably fine using both. I wouldn’t start off using both, however. Picasso solves a couple of pain points that Volley doesn’t address, and it’s trivial to integrate, which means that you should be perfectly fine putting off switching to Picasso until it’s necessary.