注:
1.一般我们在使用ImageLoader的时候,需要在应用程序的入口进行它的一个配置,这个配置一般写到Application里边
2.https://github.com/nostra13/Android-Universal-Image-Loader ImageLoader的下载地址
Android开源框架
ImageLoador的相关配置
package com.example.imageloadertest;
import java.io.File;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import android.app.Application;
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
//1.创建ImageLoaderConfiguration
ImageLoaderConfiguration.Builder builder=new ImageLoaderConfiguration.Builder(getApplicationContext());
builder.threadPoolSize(3);//设置线程池的数量
builder.threadPriority(Thread.NORM_PRIORITY-2);//设置线程的优先级
builder.memoryCacheSize(2*1024*1024);//设置缓存空间2M(内存中)
builder.memoryCacheExtraOptions(480, 800);// 设置缓存中内存图片的宽高
builder.diskCacheSize(50*1024*1024);//设置缓存空间50M(磁盘中)
builder.diskCache(new UnlimitedDiscCache(new File("")));//自定义文件的缓存路径
builder.diskCacheFileNameGenerator(new Md5FileNameGenerator());//磁盘缓存的文件名的命名方式//一般使用默认值 (获取文件名称的hashcode然后转换成字符串)或MD5 new Md5FileNameGenerator()源文件的名称同过md5加密后保存
builder.denyCacheImageMultipleSizesInMemory();//加载同一URL图片时,imageView从小变大时,从内存缓存中加载
builder.tasksProcessingOrder(QueueProcessingType.LIFO);
ImageLoaderConfiguration config=builder.build();
//2.初使化ImageLoader
ImageLoader.getInstance().init(config);
}
}
主函数里的DisplayImageOptions的相关配置
//设置DisplayImageOptions
//设置图片展示在你的眼前是什么样子
DisplayImageOptions.Builder builder = new DisplayImageOptions.Builder();
builder.showImageForEmptyUri(R.drawable.ic_empty);
builder.showImageOnFail(R.drawable.ic_error);
builder.showImageOnLoading(R.drawable.ic_stub);
builder.cacheInMemory(true);
builder.cacheOnDisk(true);
builder.displayer(new RoundedBitmapDisplayer(10));//设置成圆角图片
DisplayImageOptions options = builder.build();
//展示图片
//加载图片
ImageLoader.getInstance().displayImage(images[position],viewholder.iv_holder, options);