当前位置:   article > 正文

图片异步加载

图片异步加载

通过使用Universal-Image-Loader实现图片异步加载,现在这个比较主流。

下面是转载地址:https://github.com/nostra13/Android-Universal-Image-Loader

Universal-Image-Loader

在图片加载中,主要用到下面的类(两个类使用其中一个),下面写一下这两个类中主要的一些方法,在正式写项目中不需要把我说的这些方法都用上。

其中一个类是:

DisplayImageOptions

这个类中的主要方法有:

  1. DisplayImageOptions options = new DisplayImageOptions.Builder()
  2.         .showImageOnLoading(R.drawable.ic_stub) // 设置正在加载的图片资源
  3.         .showImageForEmptyUri(R.drawable.ic_empty) // 设置图上资源为空时加载的图片资源
  4.         .showImageOnFail(R.drawable.ic_error// 设置加载失败的图片资源
  5.         .resetViewBeforeLoading(false)  // 设置图片在下载前是否重置
  6.         .delayBeforeLoading(1000)//设置延时多少时间后开始下载
  7.         .cacheInMemory(false// 设置下载的资源是否缓存在内存中
  8.         .cacheOnDisk(false// 设置下载的资源是否缓存在SD卡中
  9.         .preProcessor(...)  // 设置图片加入缓存前,对bitmap进行设置
  10.         .postProcessor(...) // 设置显示前的图片,显示后这个图片一直保留在缓存中
  11.         .extraForDownloader(...) // 设置额外的内容给ImageDownloader
  12.         .considerExifParams(false// 是否考虑JPEG图像EXIF参数(旋转,翻转)
  13.         .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2// 设置图片以何种编码方式显示
  14.         .bitmapConfig(Bitmap.Config.ARGB_8888// 设置图片的解码类型
  15.         .decodingOptions(...) // 设置图片的解码配置 
  16.                                   例如 android.graphics.BitmapFactory.Options decodingOptions 
  17.         .displayer(new SimpleBitmapDisplayer()) // 设置显示方式(样式或者动画等)
  18.                                 例如:RoundedBitmapDisplayer(int roundPixels)设置圆角图片
  19.                                       FakeBitmapDisplayer()这个类什么都没做
  20.                                       RoundedBitmapDisplayer(int radian) 设置为圆角,弧度为多少  
  21.                                       FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间
  22.                                  SimpleBitmapDisplayer()正常显示一张图片
  23.         .handler(new Handler()) // Handler事件
  24.         .build();

另一个类是 

ImageLoaderConfiguration

这个类中的主要方法有:

  1. File cacheDir = StorageUtils.getCacheDirectory(context);
  2. ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
  3.         .memoryCacheExtraOptions(maxWidth, maxHeight) // 缓存图片的最大宽度,最大高度,
  4.         .diskCacheExtraOptions(480800null)
  5.         .taskExecutor(...)  //  添加线程池,进行下载,如果进行了这个设置,
  6.                                 那么threadPoolSize(int),threadPriority(int),
  7.                                 tasksProcessingOrder(QueueProcessingType)将不会起作用
  8.         .taskExecutorForCachedImages(...)// 下载缓存图片
  9.         .threadPoolSize(3// 设置用于显示图片的线程池大小
  10.         .threadPriority(Thread.NORM_PRIORITY - 1//  设置线程的优先级
  11.         .tasksProcessingOrder(QueueProcessingType.FIFO) // 设置图片加载和显示队列处理的类型 
  12.                                                         // 默认为QueueProcessingType.FIFO
  13.                                                         // 注:如果设置了taskExecutor或者
  14.                                                           taskExecutorForCachedImages 此设置无效
  15.         .denyCacheImageMultipleSizesInMemory() // 设置是否允许在内存中缓存多个图片大小 
  16.                                                   默认为允许,(同一个图片URL)根据不同大小
  17.                                                   的imageview保存不同大小图片
  18.         .memoryCache(new LruMemoryCache(2 * 1024 * 1024))// 设置内存缓存 
  19.                                                             默认为一个当前应用可用内存的1/8大小的
  20.         .memoryCacheSize(2 * 1024 * 1024)// 设置SD缓存的最大大小 默认为一个当前应用可用内存的1/8
  21.         .memoryCacheSizePercentage(13// 设置内存缓存最大大小占当前应用可用内存的百分比 
  22.                                           默认为一个当前应用可用内存的1/8
  23.         .diskCache(new UnlimitedDiscCache(cacheDir)) // default
  24.         .diskCacheSize(50 * 1024 * 1024)
  25.         .diskCacheFileCount(100)
  26.         .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
  27.         .imageDownloader(new BaseImageDownloader(context)) // 设置图片下载器
  28.         .imageDecoder(new BaseImageDecoder()) // 设置图片解码器
  29.         .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // 设置默认的图片显示选项
  30.         .writeDebugLogs() // 打印DebugLogs
  31.         .build();

这里有篇详细介绍的文章比较好:

Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)

还有一个应用 Demo的文章:

http://blog.csdn.net/wwj_748/article/details/10079311



转载于:https://my.oschina.net/u/942298/blog/344839

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/105851?site
推荐阅读
相关标签
  

闽ICP备14008679号