1 package com.zhang.imageloaderdemo;2
3 import android.app.Application;4 import android.graphics.Bitmap;5 import android.os.Environment;6
7 import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;8 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;9 import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;10 import com.nostra13.universalimageloader.core.DisplayImageOptions;11 import com.nostra13.universalimageloader.core.ImageLoader;12 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;13 import com.nostra13.universalimageloader.core.assist.ImageScaleType;14 import com.nostra13.universalimageloader.core.assist.QueueProcessingType;15 import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;16 import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;17 import com.nostra13.universalimageloader.core.download.BaseImageDownloader;18 import com.nostra13.universalimageloader.core.download.ImageDownloader;19
20 import java.io.File;21 import java.io.IOException;22 import java.io.InputStream;23
24 /**25 * Created by Mr.Z on 2016/9/25 0025.26 */
27 public classMyApplication extends Application {28
29 @Override30 public voidonCreate() {31 super.onCreate();32
33 ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)34 .memoryCacheExtraOptions(480, 800)//max width, max height,即保存的每个缓存文件的最大长宽
35 .discCacheExtraOptions(480, 800, null)//设置缓存的详细信息,最好不要设置这个
36 .threadPoolSize(3)//线程池内加载的数量
37 .threadPriority(Thread.NORM_PRIORITY - 2)38 .denyCacheImageMultipleSizesInMemory()39 .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))//你可以通过自己的内存缓存实现
40 .memoryCacheSize(2 * 1024 * 1024)41 .diskCacheSize(50 * 1024 * 1024)42 .discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
43 .tasksProcessingOrder(QueueProcessingType.FIFO)44 .discCacheFileCount(100)//缓存的文件数量
45 .discCache(new UnlimitedDiscCache(new File(Environment.getExternalStorageDirectory() + "/imageLoader/imgCache")))//自定义缓存路径
46 .defaultDisplayImageOptions(getDisplayOptions())47 .imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000))48 .writeDebugLogs()49 .build();//开始构建
50
51 ImageLoader.getInstance().init(configuration);52
53 }54
55 privateDisplayImageOptions getDisplayOptions() {56
57 DisplayImageOptions options;58 options = newDisplayImageOptions.Builder()59 .showImageOnLoading(R.mipmap.ic_launcher)//设置图片在下载期间显示的图片
60 .showImageForEmptyUri(R.mipmap.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片
61 .showImageOnFail(R.mipmap.ic_launcher)//设置图片加载/解码过程中错误时候显示的图片
62 .cacheInMemory(true)//设置下载的图片是否缓存在内存中
63 .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中
64 .considerExifParams(true)//是否考虑JPEG图像EXIF参数(旋转,翻转)
65 .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示
66 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型67 //.delayBeforeLoading(int delayInMillis)//设置的下载前的延迟时间68 //.preProcessor(BitmapProcessor preProcessor)//设置图片加入缓存前,对bitmap进行设置
69 .resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
70 .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少
71 .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间
72 .build();73
74 returnoptions;75 }76
77
78 }