Android universal-imageloader之DisplayImageOptions详细配置

在使用这个框架的时候,我们必须要配置一个DisplayImageOptions对象来作为ImageLoader.getInstance().displayImage()中的参数,所以很有必要讲解这个对象的配制方法。讲解完了后其实这个框架我们就会了解的比较详尽了。

1.默认的配置

DisplayImageOptions options = new DisplayImageOptions.Builder()
    .showImageOnLoading(R.drawable.ic_stub) // resource or drawable
    .showImageForEmptyUri(R.drawable.ic_empty) // resource or drawable
    .showImageOnFail(R.drawable.ic_error) // resource or drawable
    .resetViewBeforeLoading(false)  // default
    .delayBeforeLoading(1000)
    .cacheInMemory(false) // default
    .cacheOnDisk(false) // default
    .preProcessor(...)
    .postProcessor(...)
    .extraForDownloader(...)
    .considerExifParams(false) // default
    .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default
    .bitmapConfig(Bitmap.Config.ARGB_8888) // default
    .decodingOptions(...)
    .displayer(new SimpleBitmapDisplayer()) // default
    .handler(new Handler()) // default
    .build();

example:

    /**
     * 显示图片的所有配置
     * @return
     */
    private DisplayImageOptions getWholeOptions() {
        DisplayImageOptions options = new DisplayImageOptions.Builder()
        .showImageOnLoading(R.drawable.loading) //设置图片在下载期间显示的图片
        .showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片
        .showImageOnFail(R.drawable.error)  //设置图片加载/解码过程中错误时候显示的图片
        .cacheInMemory(true)//设置下载的图片是否缓存在内存中
        .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中
        .considerExifParams(true)  //是否考虑JPEG图像EXIF参数(旋转,翻转)
        .imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片以如何的编码方式显示
        .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
        //.decodingOptions(BitmapFactory.Options decodingOptions)//设置图片的解码配置
        .delayBeforeLoading(0)//int delayInMillis为你设置的下载前的延迟时间
        //设置图片加入缓存前,对bitmap进行设置
        //.preProcessor(BitmapProcessor preProcessor)
        .resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
        .displayer(new RoundedBitmapDisplayer(20))//不推荐用!!!!是否设置为圆角,弧度为多少
        .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间,可能会出现闪动
        .build();//构建完成

        return options;
    }

2.一般常用的配置

    /**
     * 设置常用的设置项
     * @return
     */
    private DisplayImageOptions getSimpleOptions() {
        DisplayImageOptions options = new DisplayImageOptions.Builder()
        .showImageOnLoading(R.drawable.loading) //设置图片在下载期间显示的图片
        .showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片
        .showImageOnFail(R.drawable.error)  //设置图片加载/解码过程中错误时候显示的图片
        .cacheInMemory(true)//设置下载的图片是否缓存在内存中
        .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中
        .imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片以如何的编码方式显示
        .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
        .build();//构建完成
        return options;
    }

注意:这里面的参数当然也是可以随意修改的,根据项目需要再定!

几点说明:

1).imageScaleType(ImageScaleType imageScaleType)  //设置图片的缩放方式,如:

.imageScaleType(ImageScaleType.IN_SAMPLE_INT)

其中,mageScaleType的选择值:

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

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

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

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

NONE:图片不会调整

2).displayer(BitmapDisplayer displayer)  // 设置图片的显示方式,如:

.displayer(new FadeInBitmapDisplayer(100))

其中,displayer的选择值:

     RoundedBitmapDisplayer(int roundPixels)设置圆角图片,不推荐!!!

FakeBitmapDisplayer()这个类什么都没做

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

     SimpleBitmapDisplayer()正常显示一张图片

3.避免OOM

.bitmapConfig(Bitmap.Config.RGB_565) //默认是ARGB_8888,使用RGB_565会比使用ARGB_8888少消耗2倍的内

使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT) 或imageScaleType(ImageScaleType.EXACTLY)

避免使用.displayer(new RoundedBitmapDisplayer(20)) //他会创建新的ARGB_8888格式的Bitmap对象;

时间: 2024-08-03 19:41:50

Android universal-imageloader之DisplayImageOptions详细配置的相关文章

Android开源项目 Universal imageloader 源码研究之项目框架

Universal imageloader 的代码并不复杂 重点是缓存,线程池任务 下面都用UML图进行了绘制 基本使用流程就是 初始化配置,设置Options参数,最后Dispaly提交下载 public static void initImageLoader(Context context) { ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context); config.thr

Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置

本篇文章主要介绍了"Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置 ",主要涉及到Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置 方面的内容,对于Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置 感兴趣的同学可以参考一下. Universal-Image-Loader这个开源框架又

Android Universal Image Loader 使用

1. 功能介绍 1.1 Android Universal Image Loader Android Universal Image Loader 是一个强大的.可高度定制的图片缓存,本文简称为UIL. 简单的说 UIL 就做了一件事--获取图片并显示在相应的控件上. 1.2 基本使用 1.2.1 初始化 添加完依赖后在Application或Activity中初始化ImageLoader,如下: public class YourApplication extends Application

ArcGIS for Android 在Eclipse上的安装配置 (下:安装配置篇)

承接上一篇ArcGIS for Android 在 Eclipse上的安装配置(上:下载篇),本文详细说明一下ArcGIS Runtime SDK for Android 在Eclipse环境下安装配置. 本文主要包括两部分: 一.自动安装(适用于arcgis-android-sdk-v10.2.4 以及之前SDK版本): 二.手动配置(适用于arcgis-android-sdk-v10.2.5 以及之后SDK版本): 以下自动安装以v10.2.4版本为例,手动配置以v10.2.5版本为例,默认

Android 服务类Service 的详细学习

上一篇说到了通知栏Notification,提起通知栏,不得让人想到Service以及BroadcastReceive,作为android的4大组建的2个重要成员,我们没少和它们打交道.它们可以在无形中使我们的软件和网络.数据库.系统等进行交互,之后通过UI(Notification就是一种展示方式)把结果展现在我们面前.可以说,他们是android生命体系里面的神经系统,通过反射条件让身体展现不同的状态.在整个系统中,广播接收器充当着是传输者和监听者的角色,它把系统的一点点变化都反馈上去,之后

Android studio下gradle Robolectric单元测试配置

android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供的测试功能,它使用了shadow objects并且运行测试于普通的工作站/服务器JVM,不像模拟器或设备需要dexing(Android dex编译器将类文件编译成Android设备上的Dalvik VM使用的格式),打包,部署和运行的过程,大大减少了测试执行的时间. 参考:安卓单元测试相关概述h

Android Universal Image Loader java.io.FileNotFoundException: http:/xxx/lxx/xxxx.jpg

前段时间在使用ImageLoader异步加载服务端返回的图片时总是出现 java.io.FileNotFoundException: http://xxxx/l046/10046137034b1c0db0.jpg at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) at com.nostra13.universalimageloader.core.download.URL

支持120Hz可变刷新率,realme真我X50 5G详细配置曝光

IT 之家 1 月 4 日消息 realme 真我 X50 5G 手机将于 1 月 7 日正式发布.今日,数码博主@数码闲聊站曝光了 realme 真我 X50 5G 的详细配置. 信息显示,realme 真我 X50 5G 手机机身尺寸为 163.8×75.8×8.9mm,重 202 克,采用 6.57 英寸 2400×1080 分辨率屏幕,支持 120Hz 可变刷新率与屏下指纹解锁. 配置方面,realme 真我 X50 5G 手机搭载高通骁龙 765G 处理器,前置 1600 万 +800

Vsftpd 详细配置

Vsftpd 详细配置         目    录 1.配置文件 2.给匿名用户的配置 3.系统用户配置 4.禁锢所有ftp系统用户在家目录中 5.禁锢或不禁锢特定的系统用户在家目录中,与上面设置互斥 6.wu-ftp日志 7.vsftpd日志 8.登录提示信息 9.目录访问提示信息 10.使用pam完成用户认证 11.是否启用控制用户登录的列表文件 12.连接限制 13.传输速率 :字节/秒 14.连接时间:秒为单位 15.优先以文本方式传输 16.其他参数 Vsftpd服务有vsftpd包