图片异步加载框架 Android-Universal-Image-Loader

特点

  • 多线程图片加载
  • 尽可能多的配置选项(线程池,加载器,解析器,内存/磁盘缓存,显示参数等等)
  • 图片可以缓存在内存中,或者设备文件目录下,或者SD卡中
  • 可以监听加载进度
  • 可以自定义显示每一张图片时都带不同参数
  • 支持Widget

jar包下载


1.自定义XXXAppllication类,初始化ImageLoader

[java]  view plain copy
  1. public class XXXApplication extends Application {  
  2.     @Override  
  3.     public void onCreate() {  
  4.         super.onCreate();  
  5.   
  6.         ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())  
  7.             .denyCacheImageMultipleSizesInMemory()  
  8.             .memoryCache(new LruMemoryCache(2 * 1024 * 1024))  
  9.             .memoryCacheSize(2 * 1024 * 1024)  
  10.             .discCacheSize(50 * 1024 * 1024)  
  11.             .denyCacheImageMultipleSizesInMemory()    
  12.             .discCacheFileNameGenerator(new Md5FileNameGenerator())    
  13.             .tasksProcessingOrder(QueueProcessingType.LIFO)    
  14.             .discCacheFileCount(100)  
  15.             .writeDebugLogs()  
  16.             .build();  
  17.         ImageLoader.getInstance().init(config);  
  18.     }  
  19. }  

2.在AndroidManifest.xml文件的application标签里加入

[java]  view plain copy
  1. android:name=".XXXApplication"  

3.使用imageloader

[java]  view plain copy
  1. public class ImageManager{  
  2.   
  3.      public static void Load(String imgUrl,ImageView imageView){  
  4.         ImageLoader.getInstance().displayImage(imgUrl, imageView);  
  5.      }  
  6.   
  7.      public static void Load(String imgUrl,ImageView imageView,DisplayImageOptions o){  
  8.          ImageLoader.getInstance().displayImage(imgUrl, imageView,o);  
  9.      }  
  10. }  

4.部分参数介绍

[java]  view plain copy
  1.      //设置图片在下载期间显示的图片  
  2.      showStubImage(R.drawable.ic_launcher)  
  3.    
  4.      //设置图片Uri为空或是错误的时候显示的图片  
  5.      showImageForEmptyUri(R.drawable.ic_empty)  
  6.    
  7.      //设置图片加载/解码过程中错误时候显示的图片  
  8.      showImageOnFail(R.drawable.ic_error)  
  9.    
  10.      //设置图片在下载前是否重置,复位  
  11.      resetViewBeforeLoading()  
  12.    
  13.      //设置下载的图片是否缓存在内存中  
  14.      cacheInMemory()  
  15.    
  16.      //设置下载的图片是否缓存在SD卡中  
  17.      cacheOnDisc()  
  18.    
  19.      //设置图片的解码类型  
  20.      bitmapConfig(Bitmap.Config.RGB_565)  
  21.    
  22.      //设置图片的解码配置  
  23.      decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)  
  24.    
  25.      //设置图片下载前的延迟  
  26.      delayBeforeLoading(int delayInMillis)  
  27.    
  28.      //设置额外的内容给ImageDownloader  
  29.      extraForDownloader(Object extra)  
  30.    
  31.      //设置图片加入缓存前,对bitmap进行设置  
  32.      preProcessor(BitmapProcessor preProcessor)  
  33.    
  34.      //设置显示前的图片,显示后这个图片一直保留在缓存中  
  35.      postProcessor(BitmapProcessor postProcessor)  
  36.    
  37.      //设置图片以如何的编码方式显示  
  38.      imageScaleType(ImageScaleType imageScaleType)  
  39.   
  40. /** 
  41.  * 设置图片的显示方式 
  42.  * @param displayer 
  43.  */  
  44. displayer(BitmapDisplayer displayer)  
  45. displayer:  
  46.           RoundedBitmapDisplayer(int roundPixels)设置圆角图片  
  47.           FakeBitmapDisplayer()这个类什么都没做  
  48.           FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间  
  49.      SimpleBitmapDisplayer()正常显示一张图片    
  50.   
  51.   
  52. /** 
  53.  * 图片的缩放方式 
  54.  * @param imageScaleType 
  55.  */  
  56.     imageScaleType(ImageScaleType imageScaleType)  
  57.     imageScaleType:  
  58.                    EXACTLY :图像将完全按比例缩小的目标大小  
  59.                    EXACTLY_STRETCHED:图片会缩放到目标大小完全  
  60.                    IN_SAMPLE_INT:图像将被二次采样的整数倍  
  61.                    IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小  
  62.                    NONE:图片不会调整  
  63.   
  64. /** 
  65. *DisplayImageOptions简单示例 
  66. */  
  67. // 创建默认的DisplayImageOptions  
  68. DisplayImageOptions option_0=DisplayImageOptions.createSimple();  
  69. // 使用DisplayImageOptions.Builder()创建DisplayImageOptions  
  70. DisplayImageOptions options = new DisplayImageOptions.Builder()    
  71.     .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)  
  72.     .showStubImage(R.drawable.loading)    
  73.     .showImageForEmptyUri(R.drawable.load_fail)    
  74.     .showImageOnFail(R.drawable.load_fail)    
  75.     .cacheInMemory(true)    
  76.     .cacheOnDisc(true)      
  77.     .build();   

5.最后别忘了权限

[java]  view plain copy
  1. <uses-permission android:name="android.permission.INTERNET" />  
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  3. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />  

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值