Search in sources :

Example 6 with ImageSize

use of com.smartandroid.sa.zUImageLoader.core.assist.ImageSize in project SmartAndroidSource by jaychou2012.

the class ImageLoader method displayImage.

/**
	 * Adds display image task to execution pool. Image will be set to
	 * ImageAware when it's turn.<br />
	 * <b>NOTE:</b> {@link #init(ImageLoaderConfiguration)} method must be
	 * called before this method call
	 * 
	 * @param uri
	 *            Image URI (i.e. "http://site.com/image.png",
	 *            "file:///mnt/sdcard/image.png")
	 * @param imageAware
	 *            {@linkplain com.nostra13.universalimageloader.core.imageaware.ImageAware
	 *            Image aware view} which should display image
	 * @param options
	 *            {@linkplain com.nostra13.universalimageloader.core.DisplayImageOptions
	 *            Options} for image decoding and displaying. If <b>null</b> -
	 *            default display image options
	 *            {@linkplain ImageLoaderConfiguration.Builder#defaultDisplayImageOptions(DisplayImageOptions)
	 *            from configuration} will be used.
	 * @param listener
	 *            {@linkplain ImageLoadingListener Listener} for image loading
	 *            process. Listener fires events on UI thread if this method is
	 *            called on UI thread.
	 * @param progressListener
	 *            {@linkplain com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener
	 *            Listener} for image loading progress. Listener fires events on
	 *            UI thread if this method is called on UI thread. Caching on
	 *            disk should be enabled in
	 *            {@linkplain com.nostra13.universalimageloader.core.DisplayImageOptions
	 *            options} to make this listener work.
	 * @throws IllegalStateException
	 *             if {@link #init(ImageLoaderConfiguration)} method wasn't
	 *             called before
	 * @throws IllegalArgumentException
	 *             if passed <b>imageAware</b> is null
	 */
public void displayImage(String uri, ImageAware imageAware, DisplayImageOptions options, ImageLoadingListener listener, ImageLoadingProgressListener progressListener) {
    checkConfiguration();
    if (imageAware == null) {
        throw new IllegalArgumentException(ERROR_WRONG_ARGUMENTS);
    }
    if (listener == null) {
        listener = emptyListener;
    }
    if (options == null) {
        options = configuration.defaultDisplayImageOptions;
    }
    if (TextUtils.isEmpty(uri)) {
        engine.cancelDisplayTaskFor(imageAware);
        listener.onLoadingStarted(uri, imageAware.getWrappedView());
        if (options.shouldShowImageForEmptyUri()) {
            imageAware.setImageDrawable(options.getImageForEmptyUri(configuration.resources));
        } else {
            imageAware.setImageDrawable(null);
        }
        listener.onLoadingComplete(uri, imageAware.getWrappedView(), null);
        return;
    }
    ImageSize targetSize = ImageSizeUtils.defineTargetSizeForView(imageAware, configuration.getMaxImageSize());
    String memoryCacheKey = MemoryCacheUtils.generateKey(uri, targetSize);
    engine.prepareDisplayTaskFor(imageAware, memoryCacheKey);
    listener.onLoadingStarted(uri, imageAware.getWrappedView());
    Bitmap bmp = configuration.memoryCache.get(memoryCacheKey);
    if (bmp != null && !bmp.isRecycled()) {
        L.d(LOG_LOAD_IMAGE_FROM_MEMORY_CACHE, memoryCacheKey);
        if (options.shouldPostProcess()) {
            ImageLoadingInfo imageLoadingInfo = new ImageLoadingInfo(uri, imageAware, targetSize, memoryCacheKey, options, listener, progressListener, engine.getLockForUri(uri));
            ProcessAndDisplayImageTask displayTask = new ProcessAndDisplayImageTask(engine, bmp, imageLoadingInfo, defineHandler(options));
            if (options.isSyncLoading()) {
                displayTask.run();
            } else {
                engine.submit(displayTask);
            }
        } else {
            options.getDisplayer().display(bmp, imageAware, LoadedFrom.MEMORY_CACHE);
            listener.onLoadingComplete(uri, imageAware.getWrappedView(), bmp);
        }
    } else {
        if (options.shouldShowImageOnLoading()) {
            imageAware.setImageDrawable(options.getImageOnLoading(configuration.resources));
        } else if (options.isResetViewBeforeLoading()) {
            imageAware.setImageDrawable(null);
        }
        ImageLoadingInfo imageLoadingInfo = new ImageLoadingInfo(uri, imageAware, targetSize, memoryCacheKey, options, listener, progressListener, engine.getLockForUri(uri));
        LoadAndDisplayImageTask displayTask = new LoadAndDisplayImageTask(engine, imageLoadingInfo, defineHandler(options));
        if (options.isSyncLoading()) {
            displayTask.run();
        } else {
            engine.submit(displayTask);
        }
    }
}
Also used : Bitmap(android.graphics.Bitmap) ImageSize(com.smartandroid.sa.zUImageLoader.core.assist.ImageSize)

Aggregations

ImageSize (com.smartandroid.sa.zUImageLoader.core.assist.ImageSize)6 Bitmap (android.graphics.Bitmap)3 Options (android.graphics.BitmapFactory.Options)2 ImageScaleType (com.smartandroid.sa.zUImageLoader.core.assist.ImageScaleType)2 Matrix (android.graphics.Matrix)1 DisplayMetrics (android.util.DisplayMetrics)1 ImageDecodingInfo (com.smartandroid.sa.zUImageLoader.core.decode.ImageDecodingInfo)1 File (java.io.File)1