学习Universal-Image-Loader类库

demo在附件
写道
来自互联网资料:
Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加 载,缓存和显示。
特点
多线程的图像加载的可能性的宽调谐对ImageLoader的配置(线程池的大小,HTTP选项,内存和光盘高速缓存,显示图像,以及其他)
的图像的可能性中的缓存存储器和/或设备的文件器系统(或SD卡)可以监听加载过程中
可自定义每个显示的图像调用分隔的选项
Widget支持
Android 2.0上支持

使用方法
缓存不是默认启用
1、DisplayImageOptions的配置
DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher)// 加载时显示的默认图片
.showImageForEmptyUri(R.drawable.ic_empty)// 加载url=null时显示的默认图片
.showImageOnFail(R.drawable.ic_error) // 加载出错时显示错误的默认图片
.cacheInMemory(true)//开启内存缓存
.cacheOnDisc(true) //开启硬盘缓存
.bitmapConfig(Bitmap.Config.RGB_565) //图片色值配置
.build();

2、ImageLoaderConfiguration的配置

// 自定义缓存路径
File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), mCache);
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions
.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 85, null)
.taskExecutor(AsyncTask.THREAD_POOL_EXECUTOR)//3.0才支持
.taskExecutorForCachedImages(AsyncTask.THREAD_POOL_EXECUTOR)//3.0才支持
.threadPoolSize(Thread.NORM_PRIORITY)// default 3
.threadPriority(Thread.NORM_PRIORITY - 1)// default 线程优先级别
.tasksProcessingOrder(QueueProcessingType.FIFO)// default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024)) // 2M
.memoryCacheSize(2 * 1024 * 1024)// 2M
// .discCache(new UnlimitedDiscCache(cacheDir)) // default UnlimitedDiscCache ,HashCodeFileNameGenerator
.discCache(new UnlimitedDiscCache(cacheDir,new Md5FileNameGenerator())) // default UnlimitedDiscCache
.discCacheSize(50 * 1024 * 1024) // 本地缓存大小50M
.discCacheFileCount(100) // 文件数量
// .discCacheFileNameGenerator(new HashCodeFileNameGenerator())// default
// .discCacheFileNameGenerator(new Md5FileNameGenerator()) // 文件命名器
.imageDownloader(new BaseImageDownloader(getApplicationContext())) // default
.imageDecoder(new BaseImageDecoder(true)) // default
.defaultDisplayImageOptions(imageOptions) // default DisplayImageOptions.createSimple()
.writeDebugLogs()
.build();


ImageLoader mImageLoader = ImageLoader.getInstance();
mImageLoader.init(config);


3、部分参数解释:
//设置图片在下载期间显示的图片
showStubImage(R.drawable.ic_launcher)

//设置图片Uri为空或是错误的时候显示的图片
showImageForEmptyUri(R.drawable.ic_empty)

//设置图片加载/解码过程中错误时候显示的图片
showImageOnFail(R.drawable.ic_error)

//设置图片在下载前是否重置,复位
resetViewBeforeLoading()

//设置下载的图片是否缓存在内存中
cacheInMemory()

//设置下载的图片是否缓存在SD卡中
cacheOnDisc()

//设置图片的解码类型
bitmapConfig(Bitmap.Config.RGB_565)

//设置图片的解码配置
decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)

//设置图片下载前的延迟
delayBeforeLoading(int delayInMillis)

//设置额外的内容给ImageDownloader
extraForDownloader(Object extra)

//设置图片加入缓存前,对bitmap进行设置
preProcessor(BitmapProcessor preProcessor)

//设置显示前的图片,显示后这个图片一直保留在缓存中
postProcessor(BitmapProcessor postProcessor)

//设置图片以如何的编码方式显示
imageScaleType(ImageScaleType imageScaleType)


/**
* 设置图片的显示方式
* @param displayer
*/
displayer(BitmapDisplayer displayer)
displayer:
RoundedBitmapDisplayer(int roundPixels)设置圆角图片
FakeBitmapDisplayer()这个类什么都没做
FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间
    SimpleBitmapDisplayer()正常显示一张图片  


/**
* 图片的缩放方式
* @param imageScaleType
*/
imageScaleType(ImageScaleType imageScaleType)
imageScaleType:
EXACTLY :图像将完全按比例缩小的目标大小
EXACTLY_STRETCHED:图片会缩放到目标大小完全
IN_SAMPLE_INT:图像将被二次采样的整数倍
IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小
NONE:图片不会调整

4、权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

你可能感兴趣的:(学习Universal-Image-Loader类库)