美文网首页
Glide-图片请求优先级(request-priorities

Glide-图片请求优先级(request-priorities

作者: itarbo | 来源:发表于2017-01-21 21:17 被阅读266次
写在前面:这篇文章原著是Norman Peitek,所有著作权归原作者所有,我只是在学习Glide的时候看到有间书的作者 weiyf 写了双语的翻译,觉得非常好,但是作者只写了几篇,估计是比较忙吧。于是我就去看原博了,发现原博的英文也不会很难懂,这里只是方便学习做了翻译(顺便学英语(逃),建议英文基础还可以的同学直接看原文:https://futurestud.io/tutorials/glide-request-priorities

前几篇传送门:

原文传送门:


正文:

上一周,我们讲了图片加载的一个关键:缓存! 如果你还没有看过,那么值得翻回去看看。本周,我们将了解Glide的另一个重要特性:按照优先级依次请求图片。

Prioritizing Image Requests:设置图片请求优先级

你经常会遇到这样的情况,你的app需要同时加载许多图片。我们假设有这样一个详情页面:页面上方有一张关键的大图和两张稍小一些的图,页面底部还有一些不那么重要的图片。 对于一个良好用户体验来说,上方的关键大图应该是最先被加载并显示的,然后再到底部那么不那么重要的ImageView。Glide通过.priority()方法结合Priority的枚举值即可按照你想要的优先级来加载图片。

但是在我们讲例子如何使用这个方法之前,我们先来看看这些枚举值,它们是作为.priority()的参数传入的。

Getting to know the Priority enum:优先级的枚举值

这些枚举总共有四种,优先级按照顺序依次递增:

  • Priority.LOW
  • Priority.NORMAL
  • Priority.HIGH
  • Priority.IMMEDIATE

在我们看例子之前,你要明白这些优先级并不是非常严格执行的。 Glide会将它们作为一个参考,在请求的时候尽量满足,并不保证所有的图片都会按照顺序来请求。

但是,如果你确定某些图片非常重要,那么可以好好利用这个特性!

例子: Hero Element with Child Images

我们回到刚才提到的例子:你要实现这么一个详情页面:顶部有关键的图片,底部有一些小图。最佳的用户体验应该是:顶部的图片最先加载出来。 因此,我们给它设置Priority.HIGH优先级。理论上,这么做已经足够了。但是为了让这例子更有趣,我们让底部的图片都以.priority(Priority.LOW)优先级加载:

private void loadImageWithHighPriority() {  
    Glide
        .with( context )
        .load( UsageExampleListViewAdapter.eatFoodyImages[0] )
        .priority( Priority.HIGH )
        .into( imageViewHero );
}

private void loadImagesWithLowPriority() {  
    Glide
        .with( context )
        .load( UsageExampleListViewAdapter.eatFoodyImages[1] )
        .priority( Priority.LOW )
        .into( imageViewLowPrioLeft );

    Glide
        .with( context )
        .load( UsageExampleListViewAdapter.eatFoodyImages[2] )
        .priority( Priority.LOW )
        .into( imageViewLowPrioRight );
}

如果你运行这个例子,你会发现几乎每次都是顶部的图先加载出来,尽管它比较大(那样它需要更长时间来加载)。

Outlook:展望

Glide提供了非常方便的方法来设置图片的优先级。这是一个快速、简单提高一些用户体验的的方法。看看你的app和你的代码,是否能运用到你刚学到的技巧吧!

按优先级请求通常来说非常有效,但不能解决所有的问题。假设你要下载一张非常大的图片,如论你设置了什么优先级,下载和处理都要花费一定的时间。
下一周,为了更好地提升用户体验,我们将介绍另一个Glide外的工具:thumbnails!

相关文章

  • Glide-图片请求优先级(request-priorities

    写在前面:这篇文章原著是Norman Peitek,所有著作权归原作者所有,我只是在学习Glide的时候看到有间书...

  • Glide-加载本地图片

    1.添加相关权限,如: 2.代码

  • Volley源码解析

    Volley的优缺点 优点 自动的调度网络请求 多并发的网络请求 可以缓存http请求 支持请求的优先级 支持取消...

  • 图片加载框架Glide-详细使用

    前言: 谈到图片加载框架,必然会想到picasso,glide,甚至是比较经典的已经不再维护的Image-Load...

  • Volley学习笔记

    1.Application设置请求队列 2.创建字符请求对象 3.创建图片请求对象,网络请求图片 普通下载图片* ...

  • 命题-第十二章-简答

    AT89S51的中断请求源有两个中断优先级,高优先级有哪些?低优先级有哪些?如果是同一优先级中断按什么顺序执行? ...

  • Android—Volley的使用

    Volley内部使用的是HTTP形式 Volley优点: ①网络请求可以通过队列排序 ②网络请求可以设置优先级 ③...

  • Glide入门教程——8. 请求优先级

    Glide — 请求优先级 原文:Request Priorities作者:Norman Peitek翻译:Dex...

  • Volley理解

    优点A:用get ,post请求,以及网络图像的高效获取请求 B:对网络优先级排序处理 C:对请求的数据进行缓存 ...

  • Glide(图片加载)

    Glide Glide使用文档 Glide 系列教程 玩转Glide的Target对象 Glide-内存缓存与磁盘...

网友评论

      本文标题:Glide-图片请求优先级(request-priorities

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