ImageLoader使用详解

ImageLoader使用详解

前言:关于ImageLoader的配置,网上有好多配置方案,本文是基于github上ImageLoader的官方引导作为讲解。
github地址 https://github.com/nostra13/Android-Universal-Image-Loader

配置ImageLoader

  • 一般我们在使用ImageLoader的时候,需要在应用程序的入口进行它的一个配置,这个配置一般写到Application里边
public void initImageLoader() { 
        // 获取默认的路径 
        File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext()); 
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( 
                getApplicationContext()) 
                // 设置内存图片的宽高 
                .memoryCacheExtraOptions(480, 800) 
                // default = device screen dimensions 
                // 缓存到磁盘中的图片宽高 
                .diskCacheExtraOptions(480, 800, null) 
                // .taskExecutor(null) 
                // .taskExecutorForCachedImages() 
                .threadPoolSize(3) 
                // default 线程优先级 
                .threadPriority(Thread.NORM_PRIORITY - 2) 
                // default 
                .tasksProcessingOrder(QueueProcessingType.FIFO) 
                // // default设置在内存中缓存图像的多种尺寸 
                //加载同一URL图片时,imageView从小变大时,从内存缓存中加载 
                .denyCacheImageMultipleSizesInMemory() 
                // 超过设定的缓存大小时,内存缓存的清除机制 
                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) 
                // 内存的一个大小 
                .memoryCacheSize(2 * 1024 * 1024) 
                .memoryCacheSizePercentage(13) 
                // default 将图片信息缓存到该路径下 
                .diskCache(new UnlimitedDiskCache(cacheDir)) 
                // default 磁盘缓存的大小 
                .diskCacheSize(50 * 1024 * 1024) 
                // 磁盘缓存文件的个数 
                .diskCacheFileCount(100) 
                //磁盘缓存的文件名的命名方式//一般使用默认值 (获取文件名称的hashcode然后转换成字符串)或MD5 new Md5FileNameGenerator()源文件的名称同过md5加密后保存 
                .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) 
                // 设置默认的图片加载 
                .imageDownloader( 
                        new BaseImageDownloader(getApplicationContext())) // default 
                // 使用默认的图片解析器 
                .imageDecoder(new BaseImageDecoder(true)) // default 
                .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default 
                .writeDebugLogs().build(); 

    } 

在使用图片加载的类中去配置这些资源,比如在Activity中进行配置

    public void initOptions() { 
        DisplayImageOptions options = new DisplayImageOptions.Builder() 
        // 设置图片在下载期间显示的图片 
                .showImageOnLoading(R.drawable.ic_launcher) 
                // 设置图片Uri为空或是错误的时候显示的图片 
                .showImageForEmptyUri(R.drawable.ic_launcher) 
                // 设置图片加载/解码过程中错误时候显示的图片 
                .showImageOnFail(R.drawable.ic_launcher) 
                // 设置下载的图片是否缓存在内存中 
                .cacheInMemory(true) 
                // 设置下载的图片是否缓存在SD卡中 
                .cacheOnDisc(true) 
                // 是否考虑JPEG图像EXIF参数(旋转,翻转) 
                .considerExifParams(true) 
                // 设置图片以如何的编码方式显示 
                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) 
                // 设置图片的解码类型// 
                .bitmapConfig(Bitmap.Config.RGB_565) 
                // 设置图片的解码配置 
                // .decodingOptions(options) 
                // .delayBeforeLoading(int delayInMillis)//int 
                // delayInMillis为你设置的下载前的延迟时间 
                // 设置图片加入缓存前,对bitmap进行设置 
                // .preProcessor(BitmapProcessor preProcessor) 
                // 设置图片在下载前是否重置,复位 
                .resetViewBeforeLoading(true) 
                // 是否设置为圆角,弧度为多少 
                .displayer(new RoundedBitmapDisplayer(20)) 
                // 是否图片加载好后渐入的动画时间 
                .displayer(new FadeInBitmapDisplayer(100)) 
                // 构建完成 
                .build(); 
    } 

ImageLoader的使用

        ImageLoader.getInstance().displayImage(imageUrl, imageView,options); 
         // imageUrl代表图片的URL地址,imageView代表承载图片的IMAGEVIEW控件 , options   代表DisplayImageOptions配置文件   

清除缓存的方法

        //完全退出程序时,可以不调用 
        ImageLoader.getInstance().clearDiskCache();//清除磁盘缓存 
        ImageLoader.getInstance().clearMemoryCache();//清除内存缓存
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容