package com.hua.goddess.utils;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import com.hua.goddess.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageLoadingProgressListener;
import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
/**
* 加载图片工具类
*/
public class LoadingImgUtil {
private static DisplayImageOptions DEFAULT_PIC_OPTIONS = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.default_image)
.showImageForEmptyUri(R.drawable.default_image)
.showImageOnFail(R.drawable.default_image).cacheInMemory(true)
.cacheOnDisc(true).considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565).build();
public static void loadimg(String url, ImageView imgview,
final ProgressBar progressBar) {
ImageLoader imageLoader = ImageLoader.getInstance();
SimpleImageLoadingListener loadListener = null;
ImageLoadingProgressListener loadProgressListener = null;
if (progressBar != null) {
loadListener = new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
progressBar.setProgress(0);
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
progressBar.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
progressBar.setVisibility(View.GONE);
}
};
loadProgressListener = new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view,
int current, int total) {
progressBar.setProgress(Math
.round(100.0f * current / total));
}
};
}
imageLoader.displayImage(url, imgview, DEFAULT_PIC_OPTIONS,
loadListener, loadProgressListener);
}
public static void loadimgAnimate(String url, ImageView imgview) {
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(url, imgview, DEFAULT_PIC_OPTIONS,
new AnimateFirstDisplayListener());
}
private static class AnimateFirstDisplayListener extends
SimpleImageLoadingListener {
static final List<String> displayedImages = Collections
.synchronizedList(new LinkedList<String>());
@Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
if (loadedImage != null) {
ImageView imageView = (ImageView) view;
boolean firstDisplay = !displayedImages.contains(imageUri);
if (firstDisplay) {
FadeInBitmapDisplayer.animate(imageView, 500);
displayedImages.add(imageUri);
}
}
}
}
}