- 原文链接: Getting Started & Simple Loading
- 原文作者: Future Studio
- 译文出自: 小鄧子的简书
- 译者: 小鄧子
- 状态: 完成
为什么使用Picasso?
有经验的Android开发者可以跳过这段,而对于初学者来说:你一定会问,为什么要使用Picasso来替换目前已有的图像加载方案。
图像处理在Android中应当是非常谨慎的,因为它会把图片一个像素接一个像素的加载到内存中。平均来看,一个手机相机所拍出来的照片尺寸为2592 x1936像素(5百万像素),将被分配大约19M的内存(译者注:原文在这里计算稍有误差:<)。如果你使用一个经过良好测试的类库,如Picasso,那么在复杂的网络连接,缓存以及图片处理等操作上,将会节省很多时间,而且也不必为其感到头疼。
在这一系列中,我们将关注Picasso的一些特性。当你决定真的需要实现这些所有特性之前,最好先通读一下博客的汇总大纲。
或者了解一下其他图像加载类库,如Glide,ION等等
添加Picasso
希望截至目前为止,我们已经肯定你使用过一种类库来处理图像的加载。如果你愿意尝试Picasso,这篇指导简直不能更适合你了。
先说重要的,添加Picasso到你的依赖列表,当我写真片文章的时候,Picasso的最新版本是2.5.2
。
Gradle
与众多依赖规则一样,只需要在你的build.gradle
文件中添加简单的一行。
compile 'com.squareup.picasso:picasso:2.5.2'
Maven
虽然我们已经把项目迁移到了Gradle,但是Picasso同样支持Maven项目。
<dependency>
<groupId>com.squareup.picasso</groupId>
<artifactId>picasso</artifactId>
<version>2.5.2</version>
</dependency>
从一个URL地址加载图片
Picasso使用了流式接口的调用方式,Picasso类是核心实现类。至少需要三个参数才能实现一个完整的请求。
-
with(Context context)
- Context对于很多Android API的调用都是必须的,同样Picasso也不例外。 -
load(String imageUrl)
- 在这里,你应该添加将被加载图像的地址。大多情况下,一个字符串代表一个网络图片的URL。 -
into(ImageView targetImageView)
- 这个目标ImageView就是图片最终要展示的地方。
ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
String internetUrl = "http://i.imgur.com/DvpvklR.png";
Picasso
.with(context)
.load(internetUrl)
.into(targetImageView);
就是这样!如果你的URL地址可用,并且ImageView
是可见的,很快就能看到图片了。如果要加载的图片不存在,Picasso将会返回错误的回调,关于这个,我们将稍后介绍。通过这三行代码示例,你可能已经相信Picasso是值得一试的,但这只是其众多特性的冰山一角。
网友评论