软件框架之imageloader的使用

来源:互联网 发布:开淘宝网店花钱吗 编辑:程序博客网 时间:2024/06/11 19:57

Imageloader的使用

一、特点:

1)多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等
2)支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置
3)支持图片的内存缓存,文件系统缓存或者SD卡缓存
4)支持图片下载过程的监听
5)根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存
6)较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加载图片,停止滑动的时候去加载图片
7)提供在较慢的网络下对图片进行加载

二、下载地址

https://github.com/nostra13/Android-Universal-Image-Loader

三、使用步骤

1)导入universal-image-loader-1.9.5.jar到项目中 
2)创建MyApplication继承Application,在oncreate()中初始化ImageLoader
完整代码
(1)初始化ImageLoaderConfiguration
(2)ImageLoader全局配置
3)将创建的MyApplication在AndroidManifest.xml中注册
注册Application.png
4)在AndroidManifest.xml中添加联网权限和写sdk权限
   <uses-permission android:name="android.permission.INTERNET"></uses-permission>
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
5)初始化DisplayImageOptions
6)获取ImageLoader实例
ImageLoader imageLoader = ImageLoader.getInstance();
7)显示加载的图片
参数1:图片url; 参数2:显示图片的控件; 参数3:显示图片的设置; 参数4:监听器
 imageLoader.displayImage(Constants.IMAGES[position], holder.image, options, mFirstLoadImageListener);

四、例子

0)准备工作(详见使用步骤)
1)导入universal-image-loader-1.9.5.jar到项目中 
2)创建MyApplication继承Application,在oncreate()中初始化ImageLoader
(1)初始化ImageLoaderConfiguration
(2)ImageLoader全局配置
3)将创建的MyApplication在AndroidManifest.xml中注册
4)在AndroidManifest.xml中添加联网权限和写sdk权限
1)在ListView中加载图片
(1)初始化布局
(2)初始化listview
(3)初始化适配器
a)构造器
b)创建存放图片URL的类
c)四个核心方法
2)在GridView中加载图片
(1)初始化布局
(2)初始化view
(3)初始化适配器
a)构造器
b)四个核心方法
3)在ViewPager中加载图片
(1)初始化布局
(2)初始化view
(3)初始化适配器
a)构造器
b)四个核心方法

五、imageLoader内存溢出解决办法

1)减少线程池中线程的个数,在ImageLoaderConfiguration中的(.threadPoolSize)中配置,推荐配置1-5
2)在DisplayImageOptions选项中配置bitmapConfig为Bitmap.Config.RGB_565,因为默认是ARGB_8888, 使用RGB_565会比使用ARGB_8888少消耗2倍的内存
3)在ImageLoaderConfiguration中配置图片的内存缓存为memoryCache(new WeakMemoryCache()) 或者不使用内存缓存
4)在DisplayImageOptions选项中设置.imageScaleType(ImageScaleType.IN_SAMPLE_INT)或者imageScaleType(ImageScaleType.EXACTLY)

原创粉丝点击