标签:
Universal imageloader 的代码并不复杂 重点是缓存,线程池任务
下面都用UML图进行了绘制
基本使用流程就是 初始化配置,设置Options参数,最后Dispaly提交下载
public static void initImageLoader(Context context) { 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 = 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.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) { } });
ImageLoader是入口,其它类包括Config和Option。 ImageLoaderEngine 为发动机,其它包括包装器,网络下载和解码
磁盘缓存和内存缓存,包括了几种经典的算法 实现。
ImageLoader 回调里面没有 Bitmap数据提供 只是直接把Bitmap设置给ImageView对象
可以通过接口处理 BitmapProcessor
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; } };
Android开源项目 Universal imageloader 源码研究之项目框架
标签:
原文地址:http://www.cnblogs.com/gaofengworking/p/5086924.html