This project came about as part of my blog post: http://www.senab.co.uk/2012/07/01/android-bitmap-caching-revisited/
Android-BitmapCache is a specialised cache, for use with Android Bitmap objects.
I have added a sample app to the source since, which can also be downloaded from the Downloads tab above. The sample app shows you how to use the library by creating a ViewPager of images downloaded from the web. These are cached in the LruCache and/or Disk Cache.
A cache which can be set to use multiple layers of caching for Bitmap objects in an Android app. Instances are created via a
BitmapLruCache.Builder instance, which can be used to alter the settings of the resulting cache.
Instances of this class should ideally be kept globally within your application, for example in the
If you wish for the library and recycling feature to work, you MUST use the bundled CacheableImageView wherever possible.
Clients can call
get(String) to retrieve a cached value from the given Url. This will check all available caches for the value. There are also the
getFromMemoryCache(String) which allow more granular access.
There are a number of update methods.
put(String, InputStream) and
put(String, InputStream, boolean) are the preferred versions of the method, as they allow 1:1 caching to disk of the original content.
put(String, Bitmap) and
put(String, Bitmap, boolean) should only be used if you can't get access to the original InputStream.
The easy way to use the library is by downloading the JAR file, and importing it into your Eclipse project. You can find the latest JAR file from here: http://bit.ly/android-bitmapcache-jar. Just remember that you must include all of the required libraries below too.
If you are a Maven user you can also add this library as a dependency since it it distributed to the central repositories. Simply add the following to your
<dependency> <groupId>com.github.chrisbanes.bitmapcache</groupId> <artifactId>library</artifactId> <version>(check pom.xml for latest version)</version> </dependency>
Copyright 2011, 2012, 2013 Chris Banes Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.