美文网首页Android开发
【译】开始使用,简单加载

【译】开始使用,简单加载

作者: 小鄧子 | 来源:发表于2016-06-20 02:33 被阅读456次

    为什么使用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是值得一试的,但这只是其众多特性的冰山一角。

    相关文章

      网友评论

        本文标题:【译】开始使用,简单加载

        本文链接:https://www.haomeiwen.com/subject/dcmxlttx.html