package com.koushikdutta.ion.builder;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.view.animation.Animation;
/**
* Created by koush on 5/30/13.
*/
public interface ImageViewBuilder<I extends ImageViewBuilder<?>> {
/**
* Set a placeholder on the ImageView while the request is loading
* @param drawable
* @return
*/
public I placeholder(Drawable drawable);
/**
* Set a placeholder on the ImageView while the request is loading
* @param resourceId
* @return
*/
public I placeholder(int resourceId);
/**
* Set an error image on the ImageView if the request fails to load
* @param drawable
* @return
*/
public I error(Drawable drawable);
/**
* Set an error image on the ImageView if the request fails to load
* @param resourceId
* @return
*/
public I error(int resourceId);
/**
* If an ImageView is loaded successfully from a remote source or file storage,
* animate it in using the given Animation. The default animation is to fade
* in.
* @param in Animation to apply to the ImageView after the request has loaded
* and the Bitmap has been retrieved.
* @return
*/
public I animateIn(Animation in);
/**
* If an ImageView is loaded successfully from a remote source or file storage,
* animate it in using the given Animation resource. The default animation is to fade
* in.
* @param animationResource Animation resource to apply to the ImageView after the request has loaded
* and the Bitmap has been retrieved.
* @return
*/
public I animateIn(int animationResource);
/**
* If the ImageView needs to load from a remote source or file storage,
* the given Animation will be used while it is loading.
* @param load Animation to apply to the imageView while the request is loading.
* @return
*/
public I animateLoad(Animation load);
/**
* If the ImageView needs to load from a remote source or file storage,
* the given Animation resource will be used while it is loading.
* @param animationResource Animation resource to apply to the imageView while the request is loading.
* @return
*/
public I animateLoad(int animationResource);
/**
* Disable fadeIn when the image loads.
* @return
*/
public I disableFadeIn();
/**
* Flag to enable or disable animation of GIFs
* @param animateGif
* @return
*/
public I animateGif(boolean animateGif);
/**
* Load the ImageView with a deep zoomable image. This allows extremely large images
* to be loaded, at full fidelity. Only portions of the image will be decoded,
* on an as needed basis when rendering.
* This only works on API level 10+, where BitmapRegionDecoder is available.
* @return
*/
public I deepZoom();
}