您的位置:首页 > 理论基础 > 计算机网络

Android 中网络图片加载(包括本地图片的加载) 框架 universal image loader 的简单使用

2016-08-08 23:52 851 查看

1,介绍

----  Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。所以,如果你的程序里需要这个功能的话,那么不妨试试它。因为已经封装好了一些类和方法。我们
可以直接拿来用了

2,universal-image-loader的使用步骤:

----  1, 导入jar包,添加权限 , 访问网络 和 写入的权限
----  2, 对ImageLoader进行配置 ,实际就是实例化个 ImageLoaderConfiguration 对象
----  3, 初始化  ImageLoader 的配置,就是给 ImageLoader 设置好配置属性
----  4, 实例化  ImageLoader 对象
----  5, 进行显示的图片的各种格式 DisplayImageOptions 的设置 , 就是实例化个  DisplayImageOptions 对象
----  6, 调用  displayImage(String uri, ImageView imageView)  按默认的图片显示的配置属性进行图片加载
    调用  displayImage(String uri, ImageView imageView, DisplayImageOptions options)  按自定义的图片显示的配置属性进行加载
     调用带事件监听的图片加载    loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options, ImageLoadingListener listener, ImageLoadingProgressListener progressListener) 

3,  Demo示例

public class MainActivity extends Activity {

private ImageLoader imageLoader;

DisplayImageOptions options;

/**
* 使用  universal image loader 来加载图片
*
* 使用的步骤 :
* 1, 导入jar包,添加权限 , 访问网络 和 写入权限
* 2, 对ImageLoader进行配置 ,实际就是实例化个 ImageLoaderConfiguration 对象
* 3, 初始化  ImageLoader 的配置,就是给 ImageLoader 设置好配置属性
* 4, 实例化  ImageLoader 对象
* 5, 进行显示的图片的各种格式 DisplayImageOptions 的设置 , 就是实例化个  DisplayImageOptions 对象
* 6, 调用  displayImage(String uri, ImageView imageView)  按默认的图片显示的配置属性进行图片加载
*    调用  displayImage(String uri, ImageView imageView, DisplayImageOptions options)  按自定义的图片显示的配置属性进行加载
*    调用带事件监听的图片加载    loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options,
ImageLoadingListener listener, ImageLoadingProgressListener progressListener)
*
*/

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//3,初始化ImageLoader的配置属性
ImageLoader.getInstance().init(getImageLoaderConfiguration());
//4,实例化  ImageLoader 对象
imageLoader = ImageLoader.getInstance();
//5,实例化显示图片的配置信息,进行显示的图片的各种格式 DisplayImageOptions 的设置
options = getOptions();

}

public void onClick(View view)
{
//6,开始加载图片
imageLoader.displayImage("http://avatar.csdn.net/B/E/B/1_wow875620051.jpg", (ImageView)findViewById(R.id.imageView), options);
}

//5,进行显示的图片的各种格式 DisplayImageOptions 的设置 , 就是实例化个  DisplayImageOptions 对象
public DisplayImageOptions getOptions()
{
DisplayImageOptions 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(20))//是否设置为圆角,弧度为多少
.displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间
.build();//构建完成
return options;
}

// 2 ,对ImageLoader进行配置 ,实际就是实例化个  ImageLoaderConfiguration 对象
public ImageLoaderConfiguration getImageLoaderConfiguration()
{
File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "imageloader/Cache");

ImageLoaderConfiguration imageLoaderConfig = new ImageLoaderConfiguration.Builder(this)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
//	    .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, 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) //缓存的文件数量
.discCache(new UnlimitedDiskCache(cacheDir))//自定义缓存路径
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
.writeDebugLogs() // Remove for release app
.build();//开始构建

return imageLoaderConfig;
}

}


讲解 图片加载 universal image loader 框架使用的文章已经很多了,但我感觉这位作者讲的不错:

Universal - image - loader 的详细使用介绍:

http://www.cnblogs.com/ruiati/p/3930732.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐