package net.iubris.ulysses._di._roboguice.module; import javax.inject.Inject; import javax.inject.Provider; import javax.inject.Singleton; import roboguice.util.Ln; import android.content.Context; import android.graphics.Bitmap; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.nostra13.universalimageloader.core.assist.QueueProcessingType; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; @Singleton public class ImageLoaderProvider implements Provider<ImageLoader> { private final ImageLoader imageLoader; @Inject public ImageLoaderProvider(Context context) { DisplayImageOptions displayImageOptions = // new DisplayImageOptions.Builder().cacheInMemory(true) // //.cacheOnDisc(true) // .build(); new DisplayImageOptions.Builder() // .showImageForEmptyUri(android.R.drawable.ic_delete) // .showImageOnFail(android.R.drawable.alert_dark_frame) // .showImageOnFail(android.R.drawable.ic_menu_gallery) .resetViewBeforeLoading(true) .imageScaleType(ImageScaleType.EXACTLY) .cacheInMemory(true) .cacheOnDisk(true) .bitmapConfig(Bitmap.Config.RGB_565).considerExifParams(true) .displayer(new FadeInBitmapDisplayer(300)) .build(); ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(context) .threadPoolSize(4) // .denyCacheImageMultipleSizesInMemory() // new perhaps not working ? .defaultDisplayImageOptions(displayImageOptions) .tasksProcessingOrder(QueueProcessingType.FIFO) .diskCacheSize(50*1024*1024) // 50mb .build(); imageLoader = ImageLoader.getInstance(); imageLoader.init(imageLoaderConfiguration); Ln.d("ImageLoader:"+imageLoader); } @Override public ImageLoader get() { return imageLoader; } }