Glide - 开始!

作者: MrFu | 来源:发表于2016-02-28 23:26 被阅读2073次

前言:所有文章翻译自 Glide — Getting Started
花了周末两天时间全部翻译完了...详细的请点击系列预览 看,每个系列中的跳转没有对应的修改...太累了!!宝宝吃不消,直接在 Glide 系列预览中看吧...
2天译了22篇...niubility,自夸下!

在我们的 Picasso 系列收到很多成功的反馈后,我们要开始延伸另外一个令人惊讶的图片加载库系列:Glide。

Glide,就像 Picasso,可以从多个源去加载和显示图片,同时也兼顾缓存和在做图片处理的时候维持一个低内存消耗。它已经在 Google 官方 APP (如 Google 2015开发者大会的应用程序)中使用了,就和 Picasso 一样受欢迎。在这个系列中,我们要探讨 Glide 和 Picasso 的不同和优势。

Glide 系列预览

  1. 开始!
  2. 加载进阶
  3. ListAdapter(ListView, GridView)
  4. 占位符 和 渐现动画
  5. 图片重设大小 和 缩放
  6. 显示 Gif 和 Video
  7. 缓存基础
  8. 请求优先级
  9. 缩略图
  10. 回调:SimpleTarget 和 ViewTarget 用于自定义视图类
  11. 加载图片到通知栏和应用小部件中
  12. 异常:调试和错误处理
  13. 自定义转换
  14. 用 animate() 自定义动画
  15. 集成网络栈
  16. 用 Module 自定义 Glide
  17. Module 实例:接受自签名证书的 HTTPS
  18. Module 实例:自定义缓存
  19. Module 实例:用自定义尺寸优化加载的图片
  20. 动态使用 Model Loader
  21. 如何旋转图像
  22. 系列综述

为何使用 Glide?

有经验的 Android 开发者可以跳过这节,但对于初学者来说,你可能会问自己为什么你想要去用 Glide,而不是自己去实现。

Android 在处理图片工作的时候显得有点娘,因为它会以像素形式加载图片到内存中去,一张照片平均普通的手机摄像头尺寸是 2592x193 像素(5百万像素)将大约会分配 19MB 内存。对于复杂的网络情况,缓存和图片处理,如果你用了一个测试完善开发完成的库,如 Glide,你会省下大量的时间,还不会让你头疼!

在这个系列,我们将看到 Glide 的很多特性,去看下这篇博客的提纲,并考虑你是否真的要去开发所有这些功能。

添加 Glide

希望我们现在已经说服你去用一个库去处理你的图片加载请求了。如果你想要了解更多 Glide 的情况,这就是为你准备的指南!

首先,添加 Glide 到你的依赖中,写这篇博客的时候,最新的版本是 Glide 是 3.6.1(译者:现在是3.7.0了)

Gradle

和大多数依赖一样,在一个 Gradle 项目中在你的 build.gradle 中添加下面这行代码:

compile 'com.github.bumptech.glide:glide:3.6.1'

Maven

Glide 也支持 Maven 项目:

<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>glide</artifactId>
<version>3.6.1</version>
<type>aar</type>
</dependency>

第一次:从一个 URL 中加载图片

就像 Picasso, Glide 库是使用流接口(fluent interface)。对一个完整的功能请求,Glide 建造者要求最少有三个参数。

  • with(Context context) - 对于很多 Android API 调用,Context 是必须的。Glide 在这里也一样
  • load(String imageUrl) - 这里你可以指定哪个图片应该被加载,同上它会是一个字符串的形式表示一个网络图片的 URL
  • into(ImageView targetImageView) 你的图片会显示到对应的 ImageView 中。

理论解释总是苍白的,所以,看一下实际的例子吧:

ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
String internetUrl = "http://i.imgur.com/DvpvklR.png";

Glide
    .with(context)
    .load(internetUrl)
    .into(targetImageView);

就这样!如果图片的 URL 存在并且你的 ImageView 是可见的,你会在几秒后看到图片。万一图片不存在,Glide 会返回一个错误的回调(我们会在后面讨论这个)。你可能已经相信这三行代码对你而言是有用的,但是这只是冰山一角啦。

展望

在下一篇文章中,除了从一个网络 URL 中加载,我们将开始其他选项来加载图片。具体来说,我们将从 Android 资源,本地文件,和一个 Uri 中加载图片。

相关文章

  • 「Glide」请求的开始

    「Glide」源码解析系列 「Glide」一切的开始 「Glide」目标的确定 「Glide」中的跟踪者 「Gli...

  • 「Glide」中的Engine

    「Glide」源码解析系列 「Glide」一切的开始 「Glide」目标的确定 「Glide」中的跟踪者 「Gli...

  • 「Glide」中的跟踪者

    「Glide」源码解析系列 「Glide」一切的开始 「Glide」目标的确定 「Glide」中的跟踪者 「Gli...

  • 「Glide」目标的确定

    「Glide」源码解析系列 「Glide」一切的开始 「Glide」目标的确定 「Glide」中的跟踪者 「Gli...

  • 「Glide」请求的生成

    「Glide」源码解析系列 「Glide」一切的开始 「Glide」目标的确定 「Glide」中的跟踪者 「Gli...

  • 「Glide」一切的开始

    「Glide」源码解析系列 「Glide」一切的开始 「Glide」目标的确定 「Glide」中的跟踪者 「Gli...

  • 「Glide」中的Job

    「Glide」源码解析系列 「Glide」一切的开始 「Glide」目标的确定 「Glide」中的跟踪者 「Gli...

  • Glide - 开始!

    前言:所有文章翻译自 Glide — Getting Started花了周末两天时间全部翻译完了...详细的请点击...

  • Glide 知识普及

    译者注:原文Glide — Getting Started Glide 系列预览 开始! 加载进阶 ListAda...

  • 全面了解Glide缓存

    1.综述 开始之前,关于Glide缓存请先思考几个问题: Glide有几级缓存? Glide内存缓存之间是什么关系...

网友评论

  • loopq:博主博客是哪个第三方?
    loopq: @daisy123 已经找到了,谢谢博主
  • ZT5250Z:请问一下楼主有没有用过glide直接显示拍照之后的照片,就是拍摄照片之后直接在回调函数中显示存储在本地的拍摄的照片,我遇到一个问题,就是第一次拍摄照片用glide显示出来的照片很小,但是下次再进来直接显示照片又是很大的,这是什么原因啊,两次用的图片路径都是一样的,本地的一个路径
    MrFu:@稍纵即逝5250 对应的 ImageView 大小是固定的么,还是 warp_content 的,建议使用固定的大小
    ZT5250Z:@MrFu 没有用呢,就是直接用的with,load 然后into,
    MrFu:@稍纵即逝5250 Glide 是不是设置了 placeholder
  • Ken_mmm: 屌到没朋友啊
  • 47c1bb09ea8c:你好,最近在使用Glide加载json数据里面的网络图片,然后一直加载不到ViewPager里面,不说了上代码,在PageAdapter的初始化条目的instantiateItem的方法里面写:
    ImageView view = new ImageView(mActivity);

    Glide.with(mActivity)
    .load(mTopNewsList.get(position).topimage)
    .into(view);

    container.addView(view);
    return view;
    然后在穿过来的数据里面给mViewPager设置setAdapter()
    //初始化头条数据
    if(mTopNewsList!=null){
    Log.d("333",mTopNewsList.toString());
    mTopNewsAdapter = new TopNewsAdapter();
    mViewPage.setAdapter(mTopNewsAdapter);
    }
    但是一直加载不出来,这个问题搞了两天了,求赐教,跪谢
  • 人失忆:楼主在吗?为什么我用glide加载图设置 他layoutparams 会使用之前view 设置过得layoutparams
  • HaKu:最后选择Fresco,画圆方便点...
  • xpleemoon:Glide已用大半年的飘过,想当初看了下Glide的指南,一下狠心直接从UIL切换到Glide
    MrFu:哈哈~棒棒哒~
  • 小鄧子:你为何这样叼
    MrFu:逗比的人生总要来点欢乐,哈哈
  • 倾城_之泪:赞!支持
  • YoKey:关注…

本文标题:Glide - 开始!

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