好吧,到目前为止,我注意到一个真正的应用程序的两个选项,想要显示由服务器上存在的图像组成的照片库:排球和 picasso 。有许多有用的教程,如Internet上提供的this。但是,我的问题是我为什么要使用它们呢?仅使用ImageView
s中的图片网址有什么问题吗?
编辑:根据CommonsWare的评论我的问题是为什么我们不仅仅使用ImageView.setImageURI或类似的方法?
答案 0 :(得分:2)
我没有使用过凌空,但我使用过毕加索。与原始URL相比,一些好处包括:
答案 1 :(得分:2)
无法直接将网址传递给ImageView
。最接近的是setImageURI()
,这有三个问题:
我认为它根本不会处理HTTP
即使它确实如此,正如该方法的文档所示,它在主应用程序线程上执行此操作,导致您使用NetworkOnMainThreadException
即使你使用一些script-kiddie方法来阻止该异常,你的UI也会在下载过程中被冻结
使用an image loading library的首要原因是在后台线程上完成图片加载工作,更新ImageView
(或Volley's案例中的NetworkImageView
)图像准备好了。其中许多库提供了其他有用的功能,在您链接到的博客文章中以及此处的其他答案中进行了概述。