package com.diandi.demo.util;
import android.content.Context;
import android.graphics.Bitmap;
import com.diandi.demo.R;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
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.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.utils.StorageUtils;
import java.io.File;
/**
* *******************************************************************************
* ********* Author : klob(kloblic@gmail.com) .
* ********* Date : 2014-11-29 .
* ********* Time : 11:46 .
* ********* Project name : Diandi1.18 .
* ********* Version : 1.0
* ********* Copyright @ 2014, klob, All Rights Reserved
* *******************************************************************************
*/
public class ImageLoadOptions {
/**
* 初始化ImageLoader
*/
public static void initImageLoader(Context context) {
File cacheDir = StorageUtils.getCacheDirectory(context);
// File cacheDir= new File(getCacheDir(), "ACache");
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.memoryCache(new LruMemoryCache(5 * 1024 * 1024))
.memoryCacheSize(10 * 1024 * 1024)
.discCache(new UnlimitedDiscCache(cacheDir))
.discCacheFileNameGenerator(new HashCodeFileNameGenerator())
.build();
ImageLoader.getInstance().init(config);
}
/**
* 新闻列表中用到的图片加载配置
*/
public static DisplayImageOptions getOption() {
DisplayImageOptions options = new DisplayImageOptions.Builder()
// // 设置图片在下载期间显示的图片
// .showImageOnLoading(R.drawable.small_image_holder_listpage)
// // 设置图片Uri为空或是错误的时候显示的图片
// .showImageForEmptyUri(R.drawable.small_image_holder_listpage)
// // 设置图片加载/解码过程中错误时候显示的图片
// .showImageOnFail(R.drawable.small_image_holder_listpage)
.cacheInMemory(true)
// 设置下载的图片是否缓存在内存中
.cacheOnDisc(true)
// 设置下载的图片是否缓存在SD卡中
.considerExifParams(true)
.imageScaleType(ImageScaleType.EXACTLY)// 设置图片以如何的编码方式显示
.bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型
// .decodingOptions(android.graphics.BitmapFactory.Options
// decodingOptions)//设置图片的解码配置
.considerExifParams(true)
// 设置图片下载前的延迟
// .delayBeforeLoading(int delayInMillis)//int
// delayInMillis为你设置的延迟时间
// 设置图片加入缓存前,对bitmap进行设置
// 。preProcessor(BitmapProcessor preProcessor)
.resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位
// .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少
.displayer(new FadeInBitmapDisplayer(100))// 淡入
.build();
return options;
}
public static DisplayImageOptions getOptions(int drawableId) {
return new DisplayImageOptions.Builder()
.showImageOnLoading(drawableId)
.showImageForEmptyUri(drawableId)
.showImageOnFail(drawableId)
.resetViewBeforeLoading(true)
.cacheInMemory(true)
.cacheOnDisc(true)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.bitmapConfig(Bitmap.Config.RGB_565)
.considerExifParams(true)
.build();
}
public static DisplayImageOptions getOptions() {
return new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.default_head_cry)
.showImageForEmptyUri(R.drawable.default_head_cry)
.showImageOnFail(R.drawable.default_head_cry)
.resetViewBeforeLoading(true)
.cacheInMemory(true)
.cacheOnDisc(true)
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565)
.considerExifParams(true)
.displayer(new RoundedBitmapDisplayer(90))
.build();
}
}