天天看点

【译】UNIVERSAL IMAGE LOADER. PART 3---ImageLoader详解

android-universal-image-loader有四个重载方法

第一个重载方法

所有东西都很简单。url就是图片的下载地址,imageview就是需要显示它的imageview控件。这个viewoption(displayoptions)将使用默认配置option(defaultdisplayimageoptions(…))

第二个重载方法

我们可以针对特定的任务做一些特定的option。首先,我会先给一个使用特定操作的例子:

【译】UNIVERSAL IMAGE LOADER. PART 3---ImageLoader详解
【译】UNIVERSAL IMAGE LOADER. PART 3---ImageLoader详解

• 当真正的图片正在下载,是否需要在imageview中显示另一张图片,显示什么图片; 

• 当遇到空的image url时,是否需要在imageview中显示另一张图片,显示什么图片; 

• 是否在内存中缓存已加载的image; 

• 是否在磁盘中(file system)缓存已下载的图片; 

• 要尽可能快(decodingtype.fast)还是尽可能节约地使用ram(decodingtype.memory_saving)

所以,我们可以在每次调用displayimage()方法的时候将这些option传递过去,或者在初始化中的configuration中定义默认的option,然后程序中就会使用这些特定的options不管你有没有明确地传递displayimageoptions。

第三个重载方法

除此之外,我们可以使用imageloadinglistener监听图片的下载和显示过程:

第四个重载方法是最强大的。你可以定制option和监听那些过程

1、为了正常运行,你需要传递给imageloader正确的参数。重点是imageview而不是image url。如果你在代码里面创建一个imageview(而不是使用layoutinflater),然后将当前的activity传递给构造函数,而不是application context。

2、只有当你想加载imageview图片比设备的屏幕尺寸更大(例如,对于后续的缩放操作),那么你才需要在configuration配置maximagewidthformemorycache(…)和maximageheightformemorycache(…)参数。在其他情况下,你不需要特殊的配置:这些参数是因为需要考虑缓存bitmap时屏幕大小和内存大小。

3、明智地在configuration中设置线程池大小:大池(线程数>10)允许多线程同时运行,这将极大地影响ui响应的速度。但是它可以通过将这些线程的优先级设置为更低解决:当imageloader运行以及更多的图片加载时,低优先级的线程会让ui更具响应性。ui的相应能力对列表视图(如listview、gridview)来说至关重要(如平滑滚动时),所以你应该配置threadpoolsize(...) and threadpriority(...)参数为你的应用程序选一个最优的配置。

4、memorycachesize(...) and memorycache(...)设置有相互重叠的地方。在一个configuration对象中只使用其中一个。

5、disccachesize(…),disccachefilecount(…)和disccache(…)设置有相互重叠的地方。在一个configuration对象中只使用其中一个。

6、如果在app中使用imageloader你总是或几乎总要传递相同的加载option(displayimageoptions)给displayimage(…)方法,然而一个合理的解决方案时在imageloader配置中将这些相同的加载选项设置为默认配置(defaultdisplayimageoptions(...) method)。然后在调用displayimage(…)时你就可以不指明这些option。如果options没有明确传递给这些方法,那么这个任务就会使用默认的options。

7、对于fast 和 memory_saving两种解析类型没有特别的重大的区别,但是推荐对所有种类的列表视图(gridview、listview)使用fast(当你需要显示许多小图片)。为图片查看器使用memory_saving(当你需要显示大尺寸的图片时)

参考链接:

<a href="http://www.intexsoft.com/blog/item/74-universal-image-loader-part-3.html">universal image loader. part 3</a>

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/p/3901235.html