imageloder工具类

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();
	}
}

猜你喜欢

转载自zhengaihua.iteye.com/blog/2334782
今日推荐