package com.hua.goddess.fragment; import java.util.Collections; import java.util.LinkedList; import java.util.List; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.View; import android.widget.ImageView; import com.hua.goddess.R; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageLoadingListener; import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; public class BaseFragment extends Fragment { public DisplayImageOptions options; public ImageLoader imageLoader = ImageLoader.getInstance(); public ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.default_image) .showImageForEmptyUri(R.drawable.ic_empty) .showImageOnFail(R.drawable.ic_error).cacheInMemory(true) .cacheOnDisc(true).considerExifParams(true).bitmapConfig(Bitmap.Config.RGB_565).build(); } 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); } } } } }