欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android图片加载框架Glide的基本使用

程序员文章站 2022-03-09 21:04:39
...

       一直以来图片加载都是让Android程序员头疼的问题,一不小心就各种OOM,然后就是各种*。。。带着一种膜拜大神的初衷,翻了下郭大神的博客,发现大神介绍的一款图片加载框架---Glide,原文在此。遂,阅之,coding之,然后写下这个博客。

       打开github,看到他目前的版本还是3.7,在Android Studio的gradle中添加相关依赖。

  dependencies {
  compile 'com.github.bumptech.glide:glide:3.7.0'
}

这样Glide就被添加到了项目中,首先来尝试下他的网络加载能力(记得添加相应网络权限)。百度随意一张图片,然后copy地址,代码如下:

String url = "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=928861582,28679776&fm=23&gp=0.jpg";
        Glide.with(this).load(url).into(imageview);

效果如下:

          Android图片加载框架Glide的基本使用

是不是很简单,但是因为是网络加载图片,所以相应的延迟还是很大的,在加载过程中很长一段时间ImageView部分显示的是个空白,这就必然导致了用户体验会特别差,但是

Glide提供了强大的API,这时候只需要在loadinto方法添加相应的占位图就行,修改代码如下:

    Glide.with(this).load(url).placeholder(R.drawable.waitting).into(imageview);

当点击完按钮之后,ImageView首先加载的是占位图资源,待网络资源加载完毕就开始加载目标资源,但是连续点击按钮重新加载图片,点几次之后占位图就不再显示而是直接

展示目标图片,这是因为Glide强大的缓存机制已经将图片缓存下载了,所以没来得及加载占位图就已经完成了对目标图片的加载。当然,相应的既然能够在loadinto之间添

加相应的占位图,那么在这之间做容错性处理也是可行的,当需要加载的图片出现异常时候,显示一张赏心悦目的图片给用户并告诉他相应结果是不是比传统网页的404要强很多呢。     

     Glide.with(this).load(url).placeholder(R.drawable.waitting).error(R.drawable.error).into(imageview);

这只是Glide最基本的加载网络图片的使用,他的功能绝非仅仅如此,他还能够加载本地图片、应用资源、二进制流、Uri对象等等。同时还能够指定图片的格式以及大小等等等等。

      第一次写,很多地方借鉴了郭霖郭大神的博客内容,非常感谢他老人家的无私奉献。。。。