Skip to content

Instantly share code, notes, and snippets.

@Sirelon
Last active November 17, 2015 18:34
Show Gist options
  • Save Sirelon/316879665b5ecc0cc962 to your computer and use it in GitHub Desktop.
Save Sirelon/316879665b5ecc0cc962 to your computer and use it in GitHub Desktop.
Static methods for the displaing image from universalimageloader with deifference parameters.
package com.sirelon;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
/**
* Created by romanishin on 15.12.14.
*/
public class ImageLoaderFactory {
public static void initSimpleImageLoader(Context context){
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context.getApplicationContext())
.build();
ImageLoader.getInstance().init(config);
}
public static void displayImage(int imgId, ImageView imageView) {
displayImage(imgId, imageView, null);
}
public static void displayImage(int imgId, ImageView imageView, final ProgressBar holder) {
String imageUrl = "" + android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI + "/" + imgId;
displayImage(imageUrl, imageView, defaultOptions(), holder);
}
public static void displayImage(String imageUrl, ImageView imageView) {
displayImage(imageUrl, imageView, defaultOptions(), null);
}
public static void displayImage(String imageUrl, ImageView imageView, final ProgressBar progressBar) {
displayImage(imageUrl, imageView, defaultOptions(), progressBar);
}
private static DisplayImageOptions defaultOptions() {
// DisplayImageOptions options = new DisplayImageOptions.Builder()
// .showImageOnLoading(R.drawable.image_loaded)
//// .showImageForEmptyUri(R.drawable.ic_launcher)
//// .showImageOnFail(R.drawable.logo)
// .cacheInMemory(false)
//// .cacheInMemory(true)
// .cacheOnDisk(true)
// .considerExifParams(false)
//// .considerExifParams(true)
// .bitmapConfig(Bitmap.Config.RGB_565)
// .build();
DisplayImageOptions options = new DisplayImageOptions.Builder().
imageScaleType(ImageScaleType.EXACTLY)
.resetViewBeforeLoading(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.cacheInMemory(true)
.cacheOnDisc(true).build();
return options;
}
public static void displayImage(String imageUrl, ImageView imageView, DisplayImageOptions options, final ProgressBar progressBar) {
SimpleImageLoading listener = new SimpleImageLoading(progressBar);
com.nostra13.universalimageloader.core.ImageLoader.getInstance()
.displayImage(imageUrl, imageView, options, listener, listener);
}
private static class SimpleImageLoading extends SimpleImageLoadingListener implements ImageLoadingProgressListener {
private ProgressBar progressBar;
public SimpleImageLoading(ProgressBar progressBar) {
this.progressBar = progressBar;
}
@Override
public void onLoadingStarted(String imageUri, View view) {
visible(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
visible(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
visible(View.GONE);
}
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
if (progressBar != null)
progressBar.setProgress(Math.round(100.0f * current / total));
}
private void visible(int opt) {
if (progressBar != null)
progressBar.setVisibility(opt);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment