Skip to content Skip to sidebar Skip to footer

Use Bitmap Caching The Correct Way

Care: No code here, only text and some questions about bitmap caching I'm currently developing an App which is almost finished. The only thing left, that I would like to do is cach

Solution 1:

my best advice on those cases is: Do not try to re-invent the wheel.

Image loading/caching is a very complex task in Android and a lot of good developers already did that. Just re-use their work.

My personal preference is Picasso http://square.github.io/picasso/

to load stuff with it is one very simple line of code:

Picasso.with(context).load(url).into(imgView);

it's that simple!

It does both RAM and disk cache, handles all threading issues and use the excellent network layer okHttp.

edit:

and to get access directly to the Bitmap you can:

Picasso.with(context).load(url).into(newTarget() {
  voidonBitmapLoaded(Bitmap bitmap, LoadedFrom from){
      // this will be called on the UI thread after load finishes 
  }

  voidonBitmapFailed(Drawable errorDrawable){
  }

  voidonPrepareLoad(Drawable placeHolderDrawable){
  }

});

Solution 2:

Check this library: http://code.google.com/p/android-query/wiki/ImageLoading

It does caching automagically

example

//fetch a remote resource in raw bitmapString url = "http://www.vikispot.com/z/images/vikispot/android-w.png";

aq.ajax(url, Bitmap.class, newAjaxCallback<Bitmap>() {

        @Overridepublicvoidcallback(String url, Bitmap object, AjaxStatus status) {

        }
});.

http://code.google.com/p/android-query/wiki/AsyncAPI

Solution 3:

You can try https://github.com/thest1/LazyList

the project code was designed for listviews, but still, its purpose is to download images from URLs in the backgroud so the user doesn't have to hold on the whole downloading time.

you take these JAVA classes : FileCache, ImageLoader, MemoryCache, import them into your project,

for downloading an image you just call imageLoader.DisplayImage(URL,ImageView);

the best part is that it takes care of the cache itself so you don't have to worry about that

hope this helps

Post a Comment for "Use Bitmap Caching The Correct Way"