com.duowan.mobile.netroid.toolbox
Class ImageLoader

java.lang.Object
  extended by com.duowan.mobile.netroid.toolbox.ImageLoader

public abstract class ImageLoader
extends java.lang.Object

Helper that handles loading images from remote URLs. The simple way to use this class is to call get(String, ImageListener) and to pass in the default image listener provided by getImageListener(ImageView, int, int). Note that all function calls to this class must be made from the main thead, and all responses will be delivered to the main thread as well.


Nested Class Summary
static interface ImageLoader.ImageCache
          Simple cache adapter interface.
 class ImageLoader.ImageContainer
          Container object for all of the data surrounding an image request.
static interface ImageLoader.ImageListener
          Interface for the response handlers on image requests.
 
Constructor Summary
ImageLoader(RequestQueue queue, ImageLoader.ImageCache imageCache)
          Constructs a new ImageLoader.
 
Method Summary
abstract  ImageRequest buildRequest(java.lang.String requestUrl, int maxWidth, int maxHeight)
           
 ImageLoader.ImageContainer get(java.lang.String requestUrl, ImageLoader.ImageListener listener)
          Returns an ImageContainer for the requested URL.
 ImageLoader.ImageContainer get(java.lang.String requestUrl, ImageLoader.ImageListener imageListener, int maxWidth, int maxHeight)
          Issues a bitmap request with the given URL if that image is not available in the cache, and returns a bitmap container that contains all of the data relating to the request (as well as the default image if the requested image is not available).
static ImageLoader.ImageListener getImageListener(android.widget.ImageView imageView, int defaultImageResId, int errorImageResId)
          The default implementation of ImageListener which handles basic functionality of showing a default image until the network response is received, at which point it will switch to either the actual image or the error image.
 boolean isCached(java.lang.String requestUrl, int maxWidth, int maxHeight)
          Checks if the item is available in the cache.
 void setBatchedResponseDelay(int newBatchedResponseDelayMs)
          Sets the amount of time to wait after the first response arrives before delivering all responses.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImageLoader

public ImageLoader(RequestQueue queue,
                   ImageLoader.ImageCache imageCache)
Constructs a new ImageLoader.

Parameters:
queue - The RequestQueue to use for making image requests.
imageCache - The cache to use as an L1 cache.
Method Detail

getImageListener

public static ImageLoader.ImageListener getImageListener(android.widget.ImageView imageView,
                                                         int defaultImageResId,
                                                         int errorImageResId)
The default implementation of ImageListener which handles basic functionality of showing a default image until the network response is received, at which point it will switch to either the actual image or the error image.

Parameters:
imageView - The imageView that the listener is associated with.
defaultImageResId - Default image resource ID to use, or 0 if it doesn't exist.
errorImageResId - Error image resource ID to use, or 0 if it doesn't exist.

isCached

public boolean isCached(java.lang.String requestUrl,
                        int maxWidth,
                        int maxHeight)
Checks if the item is available in the cache.

Parameters:
requestUrl - The url of the remote image
maxWidth - The maximum width of the returned image.
maxHeight - The maximum height of the returned image.
Returns:
True if the item exists in cache, false otherwise.

get

public ImageLoader.ImageContainer get(java.lang.String requestUrl,
                                      ImageLoader.ImageListener listener)
Returns an ImageContainer for the requested URL. The ImageContainer will contain either the specified default bitmap or the loaded bitmap. If the default was returned, the ImageLoader will be invoked when the request is fulfilled.

Parameters:
requestUrl - The URL of the image to be loaded.
listener - The listener to call when the remote image is loaded.

get

public ImageLoader.ImageContainer get(java.lang.String requestUrl,
                                      ImageLoader.ImageListener imageListener,
                                      int maxWidth,
                                      int maxHeight)
Issues a bitmap request with the given URL if that image is not available in the cache, and returns a bitmap container that contains all of the data relating to the request (as well as the default image if the requested image is not available).

Parameters:
requestUrl - The url of the remote image
imageListener - The listener to call when the remote image is loaded
maxWidth - The maximum width of the returned image.
maxHeight - The maximum height of the returned image.
Returns:
A container object that contains all of the properties of the request, as well as the currently available image (default if remote is not loaded).

buildRequest

public abstract ImageRequest buildRequest(java.lang.String requestUrl,
                                          int maxWidth,
                                          int maxHeight)

setBatchedResponseDelay

public void setBatchedResponseDelay(int newBatchedResponseDelayMs)
Sets the amount of time to wait after the first response arrives before delivering all responses. Batching can be disabled entirely by passing in 0.

Parameters:
newBatchedResponseDelayMs - The time in milliseconds to wait.