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

原创 2015年12月30日 10:47:11

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

本文主要了解Universal imageloader 源码结构 大部分都是UML图形方式 观察项目框架。

  • 基本客户化接口
  • 基本UML类图

基本客户化接口


初始化配置

      ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);
        config.threadPriority(Thread.NORM_PRIORITY - 2);
        config.denyCacheImageMultipleSizesInMemory();
        config.diskCacheFileNameGenerator(new Md5FileNameGenerator());
        config.diskCacheSize(50 * 1024 * 1024); // 50 MiB
        config.tasksProcessingOrder(QueueProcessingType.LIFO);
        config.writeDebugLogs();// Initialize ImageLoader with configuration.
        ImageLoader.getInstance().init(config.build());
    }


配置参数options
 options = new DisplayImageOptions.Builder()
                    .showImageOnLoading(R.drawable.ic_stub)
                    .showImageForEmptyUri(R.drawable.ic_empty)
                    .showImageOnFail(R.drawable.ic_error)
                    .cacheInMemory(true)
                    .cacheOnDisk(true)
                    .considerExifParams(true)
                    .bitmapConfig(Bitmap.Config.RGB_565)
                    .build();

最后 ImageLoader使用

ImageLoader.getInstance()
                    .displayImage(IMAGE_URLS[0], holder.imageView, options, new SimpleImageLoadingListener() {
                        @Override
                        public void onLoadingStarted(String imageUri, View view) {

                        }

                        @Override
                        public void onLoadingFailed(String imageUri, View view, FailReason failReason) {

                        }

                        @Override
                        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {

                        }
                    }, new ImageLoadingProgressListener() {
                        @Override
                        public void onProgressUpdate(String imageUri, View view, int current, int total) {

                        }
                    });             

这里写图片描述

基本类图

这里写图片描述

缓存

包括磁盘和内存缓存
这里写图片描述

Loading显示

这里写图片描述

View包装器

这里写图片描述

客户化接口

可以在存入缓存和显示图片之前处理Bitmap


options = new DisplayImageOptions.Builder().
                preProcessor(preProcessor).
                postProcessor(postProcessor);

    //进入缓存之前
    BitmapProcessor preProcessor = new BitmapProcessor() {

        @Override
        public Bitmap process(Bitmap bitmap) {
            return null;
        }

    };

    //显示给ImageView 之前处理
    BitmapProcessor postProcessor = new BitmapProcessor() {

        @Override
        public Bitmap process(Bitmap bitmap) {
            return null;
        }

    };



项目源码结构

这里写图片描述

基本结构就是这样。

https://github.com/nostra13/Android-Universal-Image-Loader

版权声明:本文为博主原创文章,未经博主允许不得转载。

开源项目源码解析-Android Universal Image Loader 源码分析

Android Universal Image Loader 源码分析 本文为 Android 开源项目源码解析 中 Android Universal Image Loader 部分 项目地...
  • ljx19900116
  • ljx19900116
  • 2015年02月04日 09:32
  • 7116

Android Universal Image Loader 源码分析-超详细,超全面

1. 功能介绍 1.1 Android Universal Image Loader Android Universal Image Loader 是一个强大的、可高度定制的图片缓存,本文...
  • mcc_19920603
  • mcc_19920603
  • 2016年01月28日 14:55
  • 726

十个值得研究的C开源项目!

原文链接:http://my.oschina.net/zhoukuo/blog/335788?p=9#comments 算是比较轻量级的开源项目,作为学习研究C语言,提升C语言功底!好处很多很多! ...
  • coding__madman
  • coding__madman
  • 2016年04月22日 09:30
  • 1551

SSM框架 SSM项目源码 SSM源码

获取【下载地址】   QQ: 313596790   【免费支持更新】 三大数据库 mysql  oracle  sqlsever   更专业、更强悍、适合不同用户群体 【新录针对本系统的视...
  • loninsjdsd
  • loninsjdsd
  • 2016年04月16日 10:53
  • 5646

Android直播开源项目

原文地址:http://blog.csdn.net/liutao6982/article/details/52606059 本次开源的客户端基于RTMP协议的推流拉流客户端,由我司CTO亲自操刀...
  • osle123
  • osle123
  • 2016年10月08日 16:41
  • 4403

2017年github上最火的40个Android开源项目

Tips: Github使用小技巧: 搜索github热门项目排名,可使用下面这个链接: https://github.com/search?l=java&q=stars%3A%3E1&s=st...
  • jiuhaofangyinyue
  • jiuhaofangyinyue
  • 2018年01月06日 17:51
  • 108

2017年Android开源项目及库汇总

github排名: https://github.com/trending , github搜索: https://github.com/search UI Awesome-Ma...
  • mls1454001840
  • mls1454001840
  • 2017年06月13日 15:08
  • 5065

Java开源项目源码阅读方法及二次开发方法

一直以来,都想要阅读某些Java开源项目的源代码,甚至想要修改某些代码,实现对开源项目进行二次开发的目的。但总是不知从何入手,直接将开源项目的源代码导入Eclipse,总是会报很多错误,而无法编译。可...
  • u011182412
  • u011182412
  • 2016年11月14日 14:39
  • 1274

GitHub上史上最全的Android开源项目分类汇总

http://itindex.net/detail/51896-github-android-%E5%BC%80%E6%BA%90 今天在看博客的时候,无意中发现了@Trinea在G...
  • yuxiaohui78
  • yuxiaohui78
  • 2015年08月12日 06:03
  • 5962

GitHub上Swift开源项目!

swift-open-project这里汇集了目前为止最为流行的Swift开源项目,选取SwiftGuide中的开源部分,这里将每周对项目进行总结,如果大家有推荐的可以联系thinkloki@gmai...
  • qq_15024937
  • qq_15024937
  • 2017年02月04日 19:10
  • 4540
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开源项目 Universal imageloader 源码研究之项目框架
举报原因:
原因补充:

(最多只允许输入30个字)