Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/applidium/Shutterbug
Remote image loader with caching for Android
https://github.com/applidium/Shutterbug
Last synced: 2 months ago
JSON representation
Remote image loader with caching for Android
- Host: GitHub
- URL: https://github.com/applidium/Shutterbug
- Owner: applidium
- License: other
- Created: 2012-10-09T16:09:49.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2024-04-19T08:12:56.000Z (7 months ago)
- Last Synced: 2024-06-22T10:41:44.351Z (5 months ago)
- Language: Java
- Homepage: http://applidium.com/en/news/introducing_shutterbug_for_android/
- Size: 289 KB
- Stars: 99
- Watchers: 24
- Forks: 27
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Shutterbug - Remote image loader with caching for Android
`Shutterbug` is an Android library that lets you fetch remote images and cache them. It is particularly suited for displaying remote images in lists or grids as it includes a convenience subclass of `ImageView` (`FetchableImageView`) that make implementation a one-liner.
A dual memory and disk cache was implemented. It makes use of two backports of Android classes: [LruCache][] for the memory part and [DiskLruCache][] for the disk part. `LruCache` was introduced by API Level 12, but we provide it here as a standalone class so you can use the library under lower level APIs. Both `LruCache` and `DiskLruCache` are licensed under the Apache Software License, 2.0.
`Shutterbug` was inspired by [SDWebImage][] which does the same thing on iOS. It uses the same structure and interface. People who are familiar with `SDWebImage` on iOS will feel at home with `Shutterbug` on Android.
[SDWebImage]: https://github.com/rs/SDWebImage
[LruCache]: http://developer.android.com/reference/android/util/LruCache.html
[DiskLruCache]: https://github.com/JakeWharton/DiskLruCache
[Android Support Library]: http://developer.android.com/tools/extras/support-library.html## How to use
First, ensure that the following permissions were added to your AndroidManifest.xml file:
Then, you just have to add the jar or the library project to your project.
### Basic usage
You only need a context, an url and an `ImageView`:
ShutterbugManager.getSharedImageManager(context).download(url, imageView);
### Using FetchableImageView
1. Instantiate the subclass (either in your code or in an xml file, for example by replacing `ImageView` by `com.applidium.shutterbug.FetchableImageView`).
2. Fetch the image (`setImage(String url)` or `setImage(String url, Drawable placeholderDrawable)` if you need to add a placeholder while waiting for the image to be fetched)
3. That's it!We also provide you with a listener interface (`FetchableImageViewListener`) which will help you refresh your UI if need.
### Using ShutterbugManager
If you need to do more advanced coding, you can use `ShutterbugManager`. It is a singleton class whose instance is accessed by the static method `ShutterbugManager.getSharedManager(context)`. Downloading and caching is done by calling `download(String url, ShutterbugManagerListener listener)` on this instance.