赞
踩
开源框架的使用,使我们更快的开发,增加了效率,今天就来学习一下Universal_image_loader的用法。
转载请标明出处:http://blog.csdn.net/Bingsman/article/details/48246095
首先,去github上下载所需要的jar包,下载地址:https://github.com/nostra13/Android-Universal-Image-Loader;
接着就是搭配环境了
1-将下载的jar包放到工程的lib包,并创建一个显示图片的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
2-添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
3-初始化配置有两种方法
(1)是默认配置(都是在onCreate方法中操作)
// 默认配置
ImageLoaderConfiguration configuration =ImageLoaderConfiguration.createDefault(this);
//初始化
ImageLoader.getInstance().init(configuration);
(2)自己设置(一般项目都是自己配置)
// 自己配置
File cacheDir = StorageUtils.getCacheDirectory(MainActivity.this); // 缓存文件夹路径
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(
MainActivity.this)
.memoryCacheExtraOptions(480, 800)
// default = device screen dimensions 内存缓存文件的最大长宽
.diskCacheExtraOptions(480, 800, null)
// 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
.taskExecutor(null)
.taskExecutorForCachedImages(null)
.threadPoolSize(3)
// default 线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2)
// default 设置当前线程的优先级
.tasksProcessingOrder(QueueProcessingType.FIFO)
// default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
// 可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024)
// 内存缓存的最大值
.memoryCacheSizePercentage(13)
// default
.diskCache(new UnlimitedDiskCache(cacheDir))
// default 可以自定义缓存路径
.diskCacheSize(50 * 1024 * 1024)
// 50 Mb sd卡(本地)缓存的最大值
.diskCacheFileCount(100)
// 可以缓存的文件数量
// default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new
// Md5FileNameGenerator())加密
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
.imageDownloader(new BaseImageDownloader(MainActivity.this)) // default
.imageDecoder(new BaseImageDecoder(false)) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs() // 打印debug log
.build(); // 开始构建
//初始化
ImageLoader.getInstance().init(configuration);
4-配置加载图片的选项
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.default) // 默认图片
.showImageForEmptyUri(R.drawable.empty) // resource or drawable
.showImageOnFail(R.drawable.error) // resource or drawable
.resetViewBeforeLoading(false) // default
.delayBeforeLoading(1000)
.cacheInMemory(false) // default
.cacheOnDisk(false) // default
.preProcessor(...)
.postProcessor(...)
.extraForDownloader(...)
.considerExifParams(false) // default
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default
.bitmapConfig(Bitmap.Config.ARGB_8888) // default
.decodingOptions(...)
.displayer(new SimpleBitmapDisplayer()) // default
.handler(new Handler()) // default
.build();
5-加载方式有
(1)loadimage()加载图片–ImageLoadingListener加载
//百度随便找一张图片就行
String imageUrl = "http://a.hiphotos.baidu.com/image/h%3D200/sign="
+ "af9259bf03082838770ddb148898a964/6159252dd42a2834bc76c4ab5fb5c9ea14cebfba.jpg";
//显示图片的配置
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.default)
.showImageOnFail(R.drawable.erron)
.cacheInMemory(true) //缓存机制
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
//加载图片第一种方式:loadimage()--ImageLoadingListener加载图片
ImageLoader.getInstance().loadImage(imageUrl,
new ImageLoadingListener() {
@Override
public void onLoadingCancelled(String arg0, View arg1) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingComplete(String arg0, View arg1,
Bitmap bm) {
// TODO Auto-generated method stub
imageView.setImageBitmap(bm);
}
@Override
public void onLoadingFailed(String arg0, View arg1,
FailReason arg2) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingStarted(String arg0, View arg1) {
// TODO Auto-generated method stub
}
});
(2)loadimage()加载图片–SimpleImageLoadingListener加载(使用的是缺省适配器模式)
//加载图片第一种方式:loadimage()--SimpleImageLoadingListener加载图片
ImageLoader.getInstance().loadImage(imageUrl, new SimpleImageLoadingListener(){
@Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
imageView.setImageBitmap(loadedImage);
}
});
(3)displayImage()加载图片
//显示图片的配置
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoader.getInstance().displayImage(imageUrl, imageView, options);
6-一些额外设置
//图片大小
ImageSize imageView= new ImageSize(200, 200);
//显示图片的配置
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.default)
.showImageOnFail(R.drawable.erron)
.cacheInMemory(true) //缓存机制
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoader.getInstance().loadImage(imageUrl, imageView,options, new SimpleImageLoadingListener()……)
运行结果
这是根据网上资料总结,如有雷同,纯属巧合,不喜勿喷,谢谢合作
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。