package com.example.android_test.adapter;
import java.io.File;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Environment;
import android.util.Log;
import com.example.android_test.R;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.memory.impl.WeakMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.nostra13.universalimageloader.utils.StorageUtils;
/**
*
* @author h 图片加载的工具类
*/
public class ImgLoaderUtils {
/**
* 初始化ImageLoader
*
* @param context
*/
public static void initImgLoader(Context context) {
// 缓存路径
String cachePath = Environment.getExternalStorageDirectory()
+ "/Android/data/" + context.getPackageName() + "/cache/";
// 获取到缓存的目录地址
File cacheDir = StorageUtils.getOwnCacheDirectory(context, cachePath);
Log.d("cacheDir", cacheDir.getPath());
/* ImageLoader配置 */
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(
context)
// .memoryCacheExtraOptions(480, 800)//每个缓存文件的最大宽高
.threadPoolSize(3)
// 线程池内加载线程的数量
.threadPriority(Thread.NORM_PRIORITY - 2)
// 线程优先级
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new WeakMemoryCache())
// .memoryCache(new UsingFreqLimitedMemoryCache(2*1024*1024))
.memoryCacheSize(2 * 1024 * 1024)
.diskCacheSize(50 * 1024 * 1024)
// .discCacheFileNameGenerator(new
// Md5FileNameGenerator())//MD5加密uri名称
// .discCacheFileNameGenerator(new
// HashCodeFileNameGenerator())//hashcode加密uri名称
.tasksProcessingOrder(QueueProcessingType.FIFO)
.diskCache(new UnlimitedDiskCache(cacheDir))
// 自定义缓存路径
.imageDownloader(
new BaseImageDownloader(context, 5 * 1000, 30 * 1000))
.writeDebugLogs().build();
// 全局初始化此配置
ImageLoader.getInstance().init(configuration);
}
/**
* 设置图片显示选项
*
* @return DisplayImageOptions 图片显示选项
*/
public static DisplayImageOptions setImgOptions() {
return new DisplayImageOptions.Builder()
.bitmapConfig(Bitmap.Config.RGB_565).cacheOnDisk(true)
// 缓存到sd卡
.cacheInMemory(true)
// 缓存到内存中
.showImageForEmptyUri(R.drawable.ic_launcher)
// 空uri时显示
.showImageOnFail(R.drawable.ic_launcher)
// 加载失败显示
.showImageOnLoading(R.drawable.ic_launcher)
// imageyuan
.displayer(new CircleBitmapDisplayer())// 加载时显示
.build();
}
}