简介ImageLoader(二)

displayImage:

添加显示图片的任务到执行池中,当轮到它执行的时候就会显示图片。

该方法的重载方法很多,其原型方法为:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. public void displayImage(String uri, ImageAware imageAware, DisplayImageOptions options,  
  2.             ImageLoadingListener listener, ImageLoadingProgressListener progressListener)  

        1.我们必须填写的参数至少为这两个:uri ,imageAware(ImageView)。其他的参数,如果你不填写的话,会采用默认的设置,比如:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. if (listener == null) {  
  2.         listener = emptyListener;  
  3.     }  
而emptyListener,作为该类的成员属性在开始的时候就已经初始化了:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. private final ImageLoadingListener emptyListener = new SimpleImageLoadingListener();  

        2.检查图片路径:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. TextUtils.isEmpty(uri)  
[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. public static boolean isEmpty(CharSequence str) {  
  2.       if (str == null || str.length() == 0)  
  3.           return true;  
  4.       else  
  5.           return false;  
  6.   }  
当路径为空或者长度为0的时候,就会执行。


         3.内部缓存:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. Bitmap bmp = configuration.memoryCache.get(memoryCacheKey);  
[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. public interface MemoryCache extends MemoryCacheAware<String, Bitmap> {  
  2. }  

键值对通过地址,映射该位图。

         4.ImageLoadingInfo:任务的信息。

         5.ProcessAndDisplayImageTask:当前进行的线程任务。

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. @Override  
  2. public void run() {  
  3.     L.d(LOG_POSTPROCESS_IMAGE, imageLoadingInfo.memoryCacheKey);  
  4.   
  5.     BitmapProcessor processor = imageLoadingInfo.options.getPostProcessor();  
  6.     Bitmap processedBitmap = processor.process(bitmap);  
  7.     DisplayBitmapTask displayBitmapTask = new DisplayBitmapTask(processedBitmap, imageLoadingInfo, engine,  
  8.             LoadedFrom.MEMORY_CACHE);  
  9.     LoadAndDisplayImageTask.runTask(displayBitmapTask, imageLoadingInfo.options.isSyncLoading(), handler, engine);  
  10. }  

获取缓存文件:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. private Bitmap tryLoadBitmap() throws TaskCancelledException {  
  2.         Bitmap bitmap = null;  
  3.         try {  
  4.             File imageFile = configuration.diskCache.get(uri);  
  5.             if (imageFile != null && imageFile.exists()) {  
  6.                 L.d(LOG_LOAD_IMAGE_FROM_DISK_CACHE, memoryCacheKey);  
  7.                 loadedFrom = LoadedFrom.DISC_CACHE;  

多线程处理了位图,使用handler将消息发送给UI线程。

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. static void runTask(Runnable r, boolean sync, Handler handler, ImageLoaderEngine engine) {  
  2.     if (sync) {  
  3.         r.run();  
  4.     } else if (handler == null) {  
  5.         engine.fireCallback(r);  
  6.     } else {  
  7.         handler.post(r);  
  8.     }  
  9. }  
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值