Glide.with(this)

.load(url)

.asBitmap()

.placeholder(R.drawable.loading)

.error(R.drawable.error)

.diskCacheStrategy(DiskCacheStrategy.NONE)

.into(imageView);

6、Glide 使用加载动画和禁止动画

glide默认有淡入淡出动画.crossFade()也不必加上。

Glide

.with(context)

.load(UsageExampleListViewAdapter.eatFoodyImages[0])

.placeholder(R.mipmap.ic_launcher)

.error(R.mipmap.future_studio_launcher)

.crossFade()

.into(imageViewFade);

但其中crossFade()方法还有另外重载方法 .crossFade(int duration),如果你想要去减慢(或加快)动画,随时可以传一个毫秒的时间给这个方法。动画默认的持续时间是 300毫秒。

当然你也可以选择不要这个动画。

加上.dontAnimate() 禁止动画

Glide

.with(context)

.load(UsageExampleListViewAdapter.eatFoodyImages[0])

.placeholder(R.mipmap.ic_launcher)

.error(R.mipmap.future_studio_launcher)

.dontAnimate()

.into(imageViewFade);

7、设置图片大小;

Picasso是加载了全尺寸的图片到内存,然后让GPU来实时重绘大小。而Glide加载的大小和ImageView的大小是一致的,自动适配大小,因此更小。

但你也可以为glide图片设置大小:

.override(300, 200); //设置尺寸大小

8、图片请求的优先级

通常,你会遇到这样的使用场景:你的 App 将会需要在同一时间内加载多个图像。让我们假设你正在构建一个信息屏幕,这里有一张很大的英雄图片在顶部,还有两个小的,在底部还有一些不那么重要的图片。对于最好的用户体验来说,应用图片元素是显示要被加载和显示的,然后才是底部不紧急的 ImageView。Glide 可以用 Priority 枚举来支持你这样的行为,调用 .priority() 方法。

但在看这个方法调用的示例代码之前,让么我看看 priority 的枚举值,它首先作为 .priority() 方法的参数的。

了解 Priority (优先级)枚举

这个枚举给了四个不同的选项,下面是按照递增priority(优先级)的

Priority.LOW

Priority.NORMAL

Priority.HIGH

Priority.IMMEDIATE

开始例子前,你应该知道的是:优先级并不是完全严格遵守的。Glide 将会用他们作为一个准则,并尽可能的处理这些请求,但是它不能保证所有的图片都会按照所要求的顺序加载。

然而,如果你有的使用场景是确定一些图片是重要的,充分利用它!

使用实例:英雄元素和子图像

让我们开始回到开始时的例子吧。你正在实现一个信息详情页面,有一个英雄图片在顶部,和较小的图片在底部。对于最好的用户体验来说,英雄图片首先需要被加载。因此,我们用 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 );

}

9、缩略图

在你要用缩略图去做优化之前,确保你理解和掌握了所有缓存的选项和请求优先级。如果你已经实现了这些,再来查看缩略图是否能帮助更好的提高你的

Android 应用。

缩略图不同于之前博客提到的占位符。占位符必须附带应用程序捆绑的资源才行。缩略图是动态占位符。它也可以从网络中加载。缩略图将会在实际请求

加载完或者处理完之后才显示。如果缩略图对于任何原因,在原始图像到达之后,它不会取代原始图像。它只会被抹除。

提示:另外一个流畅加载图片过程的真的很棒的方式是用色彩图像占位符的图像背景的主色彩作为图像。我们也为此写了一个指南。

简单的缩略图

Glide 为缩略图提供2个不同的方式。第一个是简单的选择,在原始图像被用过之后,这只需要一个较小的分辨率。这个方法在 ListView的组合和详细视

图中是非常有用的。如果你已经在 ListView 中显示了图像。这么说吧,在250x250 像素的中,图像将在详细视图中需要一个更大的分辨率图像。然而,

从用户的角度来看,他已经看到较小版本的图像,为什么在详情页中出现一个占位符显示了几秒,然后相同图像又再次一次显示(高分辨率的)?

在这种情况下,它有更好的意义去继续显示这张 250x250 像素版本的图像在详情视图上,并且后台去加载全分辨率的图像。Glide 的 .thumbnail() 方

法让这一切成为可能。 在这样的情况下,这个参数是一个 float 作为其大小的倍数。

Glide

.with( context )

.load( UsageExampleGifAndVideos.gifUrl
)

.thumbnail( 0.1f )

.into( imageView2 );

例如, 你传了一个 0.1f 作为参数,Glide 将会显示原始图像的10%的大小。如果原始图像有 1000x1000 像素,那么缩略图将会有 100x100 像素。因为

这个图像将会明显比 ImageView 小很多,你需要确保它的 ScaleType 的设置是正确的。

请注意,将应用于演示请求的所有请求设置也应用于缩略图。比如,如果你使用了一个变换去做了一个图像灰度。这同样将发生在缩略图中。

进阶缩略图

然而用 float 参数来使用 .thumbnail() 是易于设置且非常有效,但它不总是有意义的。如果缩略图是要通过网络去加载相同的全分辨率的图像,则可

能不会很快。所以,Glide 提供了另一个选项去加载和显示缩略图。

第二个选择是传一个完全新的 Glide 请求作为参数。让我们来看看实例:

private void loadImageThumbnailRequest() {

// setup Glide request without the into() method

DrawableRequestBuilder thumbnailRequest = Glide

.with( context )

.load( eatFoodyImages[2] );

// pass the request as a a parameter to the thumbnail request

Glide

.with( context )

.load( UsageExampleGifAndVideos.gifUrl )

.thumbnail( thumbnailRequest )

.into( imageView3 );

Builder thumbnailRequest = Glide

.with( context )

.load( eatFoodyImages[2] );

// pass the request as a a parameter to the thumbnail request

Glide

.with( context )

.load( UsageExampleGifAndVideos.gifUrl )

.thumbnail( thumbnailRequest )

.into( imageView3 );

Glide图片框架使用详细介绍(一),kotlin从入门到进阶实战电子书相关推荐

  1. Glide图片框架使用详细介绍(一)

    一.背景介绍 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O ...

  2. 啃完这些资料,我拿到了腾讯,爱奇艺,Kotlin从入门到进阶实战

    4. 趣头条 一面 在抖音上显示自己做的功能,框架的搭建,实现原理,所做的优化点等. 组件化的实现,为什么做组件化,不同实现的优缺点. hashmap的实现原理 view的优化,减少层级,异步加载,x ...

  3. 图片服务 - thumbor详细介绍

    图片服务 - thumbor详细介绍 什么是thumbor? Thumbor是一种智能成像服务.它支持按需裁剪,调整大小和翻转图像. 它具有非常智能的图像重要点检测功能,可以使用最先进的人脸和特征检测 ...

  4. Qt基础入门到进阶实战资料大全(纯干货,超详细,随时更新)

    文章目录 1.简介 2.Qt官网 3.Qt开源社区 1)国内社区 a)CSDN 社区 b)Qter社区 c)QTCN开发网 2)国外社区 a)QT software b)Qt Center c)Dev ...

  5. Android Glide图片框架的使用

    介绍:Glide是Google推荐的一套快速高效的图片加载框架,功能强大且使用方便 基本使用 添加Glide依赖 //Glideimplementation 'com.github.bumptech. ...

  6. #转# Glide图片框架

    零.前言 本文所使用的Glide版本为3.7.0 如果需要使用V4的最新版本请参考Glide V4使用指南 一.简介 Glide,一个被google所推荐的图片加载库,作者是bumptech.这个库被 ...

  7. Glide 图片框架

    多级缓存支持(最小化存储开销和解码次数) 默认情况下,Glide 会在请求图片之前检查以下多级缓存 活动资源 - 是否有另一个 View 正在展示这张图片 内存缓存 - 是否最近被加载过并仍存在于内存 ...

  8. android glide图片框架,【Android 进阶】图片载入框架之Glide(示例代码)

    简单介绍 在泰国举行的谷歌开发人员论坛上,谷歌为我们介绍了一个名叫 Glide 的图片载入库,作者是 bumptech.这个库被广泛的运用在 google 的开源项目中,包含 2014 年 googl ...

  9. Pytorch高级训练框架Ignite详细介绍与常用模版

    引言 Ignite是Pytorch配套的高级框架,我们可以借其构筑一套标准化的训练流程,规范训练器在每个循环.轮次中的行为.本文将不再赘述Ignite的具体细节或者API,详见官方教程和其他博文.本文 ...

  10. python django flask介绍_Python开发WEB框架Flask详细介绍

    Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模 ...

最新文章

  1. gradle build connection reset or protocol_version build failure
  2. sshpass连接主机以及执行命令
  3. golang import 导入包语法介绍 点 别名 下划线
  4. pycharm2019.2一个奇怪的bugger,执行后输出内容被莫名处理
  5. git 上下载的项目在本地安装依赖时报错 Could not resolve dependency
  6. Spring Cloud Eureka 配置原理详解
  7. ActiveMQ 即时通讯服务 浅析
  8. mybatis配置sql超时时间
  9. MongoDB的web可视化管理工具
  10. 【搜狗输入法安装包文件有异常,错误码:2,现在终止安装】解决办法
  11. C#语言与三菱PLC串口通讯
  12. CodeSmith 简单使用和常用模板
  13. 模态框-model dialog
  14. 浅谈react hook ( ref)
  15. 懊悔!早一点遇到这份1399页Nginx笔记,我绝不会错过阿里offer!
  16. Opengrok本地搭建(Windows10)
  17. Mongo数据迁移实验
  18. python人工智能要看哪些书籍_人工智能技术入门该读哪些书
  19. 【解决方案】EasyCVR安消一体化解决方案集成优势资源融合打造全局可视化安消应用
  20. python实现摇号小程序

热门文章

  1. 阿里云香港服务器和大陆服务器区别及选择
  2. c语言输出最大的数ns流程图_怎么将100至200中全部的素数用NS流程 – 手机爱问...
  3. 禅修程序员十诫 [译文]
  4. html 必填设置,html如何设置必填项
  5. python 极客学院 正则表达式
  6. 正则表达式 正则表达式语法
  7. 图像处理--轮廓介绍及特征
  8. 使用nat123动态解析公网ip
  9. 高德地图JS-API开发—Marker添加及infoWindow处理
  10. 基于Python的指数基金量化投资——估值数据的直接获取