1.初始化Imageloader
/* 继承application的类,就可以成为全局变量
* application---》全局的一些配置,变量
*/
public class APP extends Application {
// 首先创建一个Oncreate
@Override
public void onCreate() {
super.onCreate();
// 配置Imageloader
initdata();
}
private void initdata() {
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())//设置一个全局的上下文getApplicationContext
.memoryCacheExtraOptions(480, 800)//内存缓存。。
// max width, max height,即保存的每个缓存文件的最大长宽
.discCacheExtraOptions(480, 800, null)//磁盘缓存。。。
// Can slow ImageLoader, use it carefully (Better don't use
// it)/设置缓存的详细信息,最好不要设置这个
.threadPoolSize(3)//允许开启的线程数量
// 线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2)//线程的属性
.denyCacheImageMultipleSizesInMemory()//在内存中拒绝缓存多个尺寸的图片
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))//闲置内存的大小
// You can pass your own memory cache
// implementation/你可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024)//内存大小
.discCacheSize(50 * 1024 * 1024)//磁盘缓存大小
.discCacheFileNameGenerator(new Md5FileNameGenerator())
// 将保存的时候的URI名称用MD5 加密
.tasksProcessingOrder(QueueProcessingType.LIFO)//任务进程的顺序
.discCacheFileCount(100)//磁盘缓存文件的数量
// 自定义缓存路径
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
//默认展示图片的选项 option--》选项
.imageDownloader(new BaseImageDownloader(getApplicationContext(), 5 * 1000, 30 * 1000)) // connectTimeout
//默认的imageloader下载地址(baseImageloader是实现类) // (5
// s),
// readTimeout
// (30
// s)超时时间
.writeDebugLogs() // Remove for release app
.build();// 开始构建
//用第三方的类Imageloager来实现。
ImageLoader.getInstance().init(config);//全局初始化此配置
}
}public class ImageloaderOptions {
public static DisplayImageOptions Options(){
DisplayImageOptions options;
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher) //设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.ic_launcher) //设置图片加载/解码过程中错误时候显示的图片
.cacheInMemory(true)//设置下载的图片是否缓存在内存中
.cacheOnDisc(true)//设置下载的图片是否缓存在SD卡中
.considerExifParams(true) //是否考虑JPEG图像EXIF参数(旋转,翻转)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示
//.delayBeforeLoading(int delayInMillis)//int delayInMillis为你设置的下载前的延迟时间
//设置图片加入缓存前,对bitmap进行设置
//.preProcessor(BitmapProcessor preProcessor)
.resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
.displayer(new RoundedBitmapDisplayer(60))//是否设置为圆角,弧度为多少
.displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间
.build();//构建完成
return options;
}
}
public class ImageloaderOptions {
public static DisplayImageOptions Options(){
DisplayImageOptions options;
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher) //设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.ic_launcher) //设置图片加载/解码过程中错误时候显示的图片
.cacheInMemory(true)//设置下载的图片是否缓存在内存中
.cacheOnDisc(true)//设置下载的图片是否缓存在SD卡中
.considerExifParams(true) //是否考虑JPEG图像EXIF参数(旋转,翻转)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示
//.delayBeforeLoading(int delayInMillis)//int delayInMillis为你设置的下载前的延迟时间
//设置图片加入缓存前,对bitmap进行设置
//.preProcessor(BitmapProcessor preProcessor)
.resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
.displayer(new RoundedBitmapDisplayer(60))//是否设置为圆角,弧度为多少
.displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间
.build();//构建完成
return options;
}
}
3.具体的应用
public class MainActivity extends Activity {
private String url="http://g.hiphotos.baidu.com/zhidao/pic/item/9f510fb30f2442a79fbc68ded343ad4bd113021e.jpg";
private String url1="http://cdn.duitang.com/uploads/item/201409/29/20140929183911_H4E8w.jpeg";
private CircleImageView im;
private CircleImageView im2;
private CircleImageView im3;
private CircleImageView im4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button) findViewById(R.id.bt);
im = (CircleImageView) findViewById(R.id.im);
im2 = (CircleImageView) findViewById(R.id.im2);
im3 = (CircleImageView) findViewById(R.id.im3);
im4 = (CircleImageView) findViewById(R.id.im4);
}
public void loaderImage(View v){
//使用Imageloager加载图片
//1.配置application
//2.实例化imageloader
ImageLoader instance = ImageLoader.getInstance();
//3.加载图片地址
// instance.displayImage(url, im);
// instance.displayImage(url, im2);
// instance.displayImage(url, im3);
// instance.displayImage(url, im4);
//展示图片,展示图片的类型
instance.displayImage(url1, im,ImageloaderOptions.Options());
}
}