关闭

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

标签: android开源项目源码框架
622人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:286232次
    • 积分:3086
    • 等级:
    • 排名:第11956名
    • 原创:64篇
    • 转载:5篇
    • 译文:1篇
    • 评论:52条
    最新评论