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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值