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

特点

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

jar包下载


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

[java] view plain copy
  1. publicclassXXXApplicationextendsApplication{
  2. @Override
  3. publicvoidonCreate(){
  4. super.onCreate();
  5. ImageLoaderConfigurationconfig=newImageLoaderConfiguration.Builder(getApplicationContext())
  6. .denyCacheImageMultipleSizesInMemory()
  7. .memoryCache(newLruMemoryCache(2*1024*1024))
  8. .memoryCacheSize(2*1024*1024)
  9. .discCacheSize(50*1024*1024)
  10. .denyCacheImageMultipleSizesInMemory()
  11. .discCacheFileNameGenerator(newMd5FileNameGenerator())
  12. .tasksProcessingOrder(QueueProcessingType.LIFO)
  13. .discCacheFileCount(100)
  14. .writeDebugLogs()
  15. .build();
  16. ImageLoader.getInstance().init(config);
  17. }
  18. }

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

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

3.使用imageloader

[java] view plain copy
  1. publicclassImageManager{
  2. publicstaticvoidLoad(StringimgUrl,ImageViewimageView){
  3. ImageLoader.getInstance().displayImage(imgUrl,imageView);
  4. }
  5. publicstaticvoidLoad(StringimgUrl,ImageViewimageView,DisplayImageOptionso){
  6. ImageLoader.getInstance().displayImage(imgUrl,imageView,o);
  7. }
  8. }

4.部分参数介绍

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

5.最后别忘了权限

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值