ImageLoader中的常用方法及相关作用注释

ImageLoader 的ImageLoaderConfiguration config 配置

ImageLoaderConfiguration config = new ImageLoaderConfiguration  
    .Builder(context)  
    .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 UnlimitedDiscCache(cacheDir))//cacheDir自定义缓存路径  
    .defaultDisplayImageOptions(DisplayImageOptions.createSimple())  
    .imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间  
    .writeDebugLogs() // Remove for release app  
    .build();//开始构建

ImageLoader 的DisplayImageOptions options; 配置

DisplayImageOptions options;  
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)//设置图片以如何的编码方式显示  
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型//  
.decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)//设置图片的解码配置  
//.delayBeforeLoading(int delayInMillis)//int delayInMillis为你设置的下载前的延迟时间
//设置图片加入缓存前,对bitmap进行设置  
//.preProcessor(BitmapProcessor preProcessor)  
.resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位  
.displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少  
.displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间  
.build();//构建完成 

按照你所需要的配置去设置,如果不需要的就可以不做配置。

以上配置中的:
 1).imageScaleType(ImageScaleType imageScaleType)  是设置 图片的缩放方式
     缩放类型mageScaleType:

EXACTLY :图像将完全按比例缩小的目标大小

EXACTLY_STRETCHED:图片会缩放到目标大小完全

IN_SAMPLE_INT:图像将被二次采样的整数倍

IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小

NONE:图片不会调整
  2).displayer(BitmapDisplayer displayer)   是设置 图片的显示方式

显示方式displayer:

RoundedBitmapDisplayer(int roundPixels)设置圆角图片

FakeBitmapDisplayer()这个类什么都没做

FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间

     SimpleBitmapDisplayer()正常显示一张图片  

3.图片加载时候带加载情况的监听

  //方法:
  public void displayImage(String uri, ImageAware imageAware, DisplayImageOptions options,ImageLoadingListener listener) {}
  ImageLoadingListener 用于监听图片的下载情况。
  //具体实现:
imageLoader.displayImage(imageUrl, imageView, options, new ImageLoadingListener() {  
    @Override  
    public void onLoadingStarted() {  
       //开始加载的时候执行  
    }  
    @Override  
    public void onLoadingFailed(FailReason failReason) {        
       //加载失败的时候执行  
    }   
    @Override   
    public void onLoadingComplete(Bitmap loadedImage) {  
       //加载成功的时候执行  
    }   
    @Override   
    public void onLoadingCancelled() {  
       //加载取消的时候执行  
  
    }});  

4.图片加载时候,带监听又带加载进度条的情况

   //调用:
public void loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options,
                    ImageLoadingListener listener, ImageLoadingProgressListener progressListener) {}
  // 具体实现:
imageLoader.displayImage(imageUrl, imageView, options, new ImageLoadingListener() {  
    @Override  
    public void onLoadingStarted() {  
       //开始加载的时候执行  
    }  
    @Override  
    public void onLoadingFailed(FailReason failReason) {        
       //加载失败的时候执行  
    }      
    @Override      
    public void onLoadingComplete(Bitmap loadedImage) {  
       //加载成功的时候执行  
    }      
    @Override      
    public void onLoadingCancelled() {  
       //加载取消的时候执行  
    },new ImageLoadingProgressListener() {        
      @Override  
      public void onProgressUpdate(String imageUri, View view, int current,int total) {     
      //在这里更新 ProgressBar的进度信息  
      }  
    });  

四、注意事项
  1.上述提到的2个权限(网络,内存卡读取)必须加入,否则会出错,
  2.ImageLoaderConfiguration必须配置并且全局化的初始化这个配置ImageLoader.getInstance().init(config);  否则也会出现错误提示
  3.ImageLoader是根据ImageView的height,width确定图片的宽高。
  4.如果经常出现OOM(别人那边看到的,觉得很有提的必要)
   ①减少配置之中线程池的大小,(.threadPoolSize).推荐1-5;
   ②使用.bitmapConfig(Bitmap.config.RGB_565)代替ARGB_8888;
   ③使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT)或者        try.imageScaleType(ImageScaleType.EXACTLY);
   ④避免使用RoundedBitmapDisplayer.他会创建新的ARGB_8888格式的Bitmap对象;
   ⑤使用.memoryCache(new WeakMemoryCache()),不要使用.cacheInMemory();

ImageLoader常用方法注释的更多相关文章

  1. Glide的常用方法注释

    Glide简单使用1.)添加引用 build.gradle 中添加配置  compile 'com.github.bumptech.glide:glide:3.7.0' 2.)设置绑定生命周期   我 ...

  2. C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式

    C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式 C#实现自动启动的方法-两种方法 源码下载地址: ...

  3. 使用solrJ操作solr常用方法 【注释非常详细,非常好】

    转: 使用solrJ操作solr常用方法 2017年08月07日 22:49:06 成都往右 阅读数:8990   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  4. DOM常用方法总结

    DOM(Document Object Model:文档对象模型)为javascript中的一部分,它为访问和修改html文档或xml文档提供了一些编程接口,DOM以对象的形式来描述文档中的内容,以树 ...

  5. discuz门户首页-header文件模板语法详解和注释

    header文件引用了跟多通用模板,所以整个文章会很长,现在比较忙,注释工作会不定期进行 首先开下门户首页的文件 portal里面的index.htm <!--{template common/ ...

  6. 点评阿里JAVA手册之编程规约(命名风格、常量定义、代码风格、控制语句、注释规约)

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文难度系数为一星(★) 码出高效.码出质量. 代码的字里行间流淌的是 ...

  7. 复写的Object常用方法

    复写的Object常用方法 在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法.每次写这几个方法都要做很多重复性的 ...

  8. 【转载】JAVA基础复习与总结<三> Object类的常用方法

    Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类.这里主要总结Object类中的三个常用方法:toString().equ ...

  9. 6.JAVA基础复习——JAVA中文档注释与帮助文档的生成

    java中的文档注释:用于说明该类的功能作用方便他人使用关键词前需要加@符 用于类的注释 @author name 作者 @version v1.0 版本 …… 用于函数的注释 @param para ...

随机推荐

  1. day1 java基础回顾- Properties类与配置文件

    Properties配置文件说明 Properties类对应.properties文件.文件内容是键值对,键值对之间使用"="或空格隔开.开头是"#"的表示注释 ...

  2. OpenGL学习笔记——求值器和NURBS

    http://codercdy.com/openglxue-xi-bi-ji-qiu-zhi-qi-he-nurbs/ 在最底层,图形硬件所绘制的是点.直线和多边形(通常是三角形和四边形).平滑的曲线 ...

  3. 洛谷P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)

    传送门 先坑着,联赛活着回来的话我就写(意思就是我绝对不会写了) //minamoto #include<cstdio> #include<cmath> #include< ...

  4. 自动化测试 Cucumber

    Cucumber是一个能够理解用普通语言描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和.Net等多种开发语言. Cucumber 三大组成: Feature ...

  5. BZOJ 1069: [SCOI2007]最大土地面积(旋转卡壳)

    题目链接~ 1069: [SCOI2007]最大土地面积 思路很简单,极角排序求完凸包后,在凸包上枚举对角线,然后两边分别来两个点旋转卡壳一下,搞定! 不过计算几何的题目就是这样,程序中间的处理还是比 ...

  6. spring事物回滚机制 (事务异常回滚,捕获异常不抛出就不会回滚)

    当异常被捕获catch的时候,spring的事物则不会回滚 为什么不会滚呢??  spring aop  异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常 ...

  7. 深入浅出面向对象分析与设计读书笔记一&吉他搜索案例&吉他特性锚点集中&委托&重用&业务阶段&需求列表&用例

    案例:吉他搜索Guitar Inventory GuitarSpec需求变化:增加吉他弦数特性原始程序需要的变化: 1.修改GuitarSpec,构造,成员,getter 2.修改Guitar,构造, ...

  8. 关于Django查询知识点总结

    ========关于Django查询知识点总结======= models.Book.objects.filter(**kwargs): querySet [obj1,obj2] models.Boo ...

  9. phpcms9.6 注入分析

    phpcms9.6 注入分析 漏洞促发点\phpcms\modules\content\down.php $a_k = trim($_GET['a_k']); if(!isset($a_k)) sho ...

  10. BZOJ 4668: 冷战 并查集&&暴力LCA(雾)

    利用并查集按秩合并,保存每个点合并的时间: 求时间时,就一直跳u=fa[u],并记录路径上时间的最大值,代表最后一次合并的时间 #include<cstdio> #include<i ...