第三方库Universal Image Loader简单使用-学习篇

决定以这样的方式来做一个知识的积累,这是写的第一篇文章,在这里标记一下,重在坚持。


今天在看一个工程的时候发现使用了一个第三方库Android-Universal-Image-Loade来做一个图片的加载,看了下觉得不错,在此学习并记录一下。

下载地址:https://github.com/nostra13/Android-Universal-Image-Loader

功能介绍:

•Multithread image loading (async or sync)
 多线程加载图像(异步或同步)
•Wide customization of ImageLoader's configuration (thread executors, downloader, decoder, memory and disk cache, display image options, etc.)
 定制imageloader配置(线程的执行者,下载器,解码器,内存和磁盘缓存,显示图像选项,等)
•Many customization options for every display image call (stub images, caching switch, decoding options, Bitmap processing and displaying, etc.)
 为每一个显示图像调用(存根图像、缓存转换、解码选项、位图处理和显示等)的定制许多选项。
•Image caching in memory and/or on disk (device's file system or SD card)
 在内存和/或磁盘上的图像缓存(设备的文件系统或SD卡)
•Listening loading process (including downloading progress)
 监听加载过程(包括下载进度)


项目包:

(1)cache主要是磁盘缓存及内存缓存预定的接口和常规实现类。

(2)core明显是整个Image Loader的核心包,图片下载、适配显示,并向上层应用提供各种接口,默认模板,还包括很多关键枚举类、工具类。

(3)utils常规工具类,如ImageSizeUtils、StorageUtils等。


支持多种方式加载图片:

"http://site.com/image.png" // from Web
"file:///mnt/sdcard/image.png" // from SD card
"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
"content://media/external/images/media/13" // from content provider
"content://media/external/video/media/13" // from content provider (video thumbnail)
"assets://image.png" // from assets
"drawable://" + R.drawable.img // from drawables (non-9patch images)

需要添加的权限:

<manifest>
    <!-- Include following permission if you load images from Internet -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- Include following permission if you want to cache images on SD card -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    ...
</manifest>


初始化:

ImageLoader imageLoader = ImageLoader.getInstance(); // Get singleton instance
imageLoader.init(ImageLoaderConfiguration.createDefault(LocalImagePlayer.this));


参数设置

DisplayImageOptions options = new DisplayImageOptions.Builder()
		.showImageOnLoading(R.drawable.media_def_cover_image)
		.showImageForEmptyUri(R.drawable.media_def_cover_image)
		.showImageOnFail(R.drawable.media_def_cover_image)
		.cacheInMemory(true)
		.cacheOnDisk(true)
		.considerExifParams(true)
		.bitmapConfig(Bitmap.Config.RGB_565)
		.build();



显示图片:

imageLoader.displayImage(uri, imageView, options);


加载图片:

imageLoader.loadImage(uri, targetImageSize, new ImageLoadingListener() {
	@Override
	public void onLoadingStarted(String uri, View view) {
		...

		loadTextView.setVisibility(View.VISIBLE);
		loadTextView.setText("正在下载:  " + picName);
	}

	@Override
	public void onLoadingComplete(String uri, View view, Bitmap loadedImage) {
		...

		mPageView.setImageBitmap(loadedImage);
		loadTextView.setVisibility(View.GONE);
	}

	@Override
	public void onLoadingCancelled(String uri, View view) {
		...
	}

	@Override
	public void onLoadingFailed(String uri, View view, FailReason failReason) {
		...

		loadTextView.setText("下载失败:  " + picName);
	}
});


控制:

imageLoader.stop();
imageLoader.resume();
imageLoader.pause();
imageLoader.destroy();

ImageLoader.getInstance().clearMemoryCache();  // 清除内存缓存
ImageLoader.getInstance().clearDiskCache(); <span style="font-family:Courier New;">// 清除本地缓存</span>


参考:

http://www.cnblogs.com/osmondy/p/3266023.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值