Android图片加载框架之Google推荐的图片加载库Glide

古城微笑少年丶 2022-07-29 11:41 276阅读 0赞

参考链接:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html

github链接:https://github.com/bumptech/glide

上面链接中,已经讲的非常好,此篇博客就是按照这个链接的教程重新梳理一遍,并添加自己需要的拓展功能,持续更新…欢迎留言。

Gilde的强大之处第4点已经说明。

点我下载Demo

1,引入glide,在github上获取目前最新的。

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

2,简单加载图片

  1. Glide.with(context)
  2. .load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg")
  3. .into(ivImg);

注意:Glide的with方法不光接受Context,还接受Activity 和 Fragment,Context会自动的从他们获取。

如果对图片没有什么特殊要求,1,2两步 已经能够正常显示图片了,是不是很简单。

3,拓展Glide 的配置

(1)Glide为了减少内存,默认Bitmap格式是RGB_565,如果你想加载更高质量的图片。

(2)设置缓存的目录

创建GlideConfiguration类,增加一些配置信息。设置Bitmap格式格式与缓存路径

  1. public class GlideConfiguration implements GlideModule{
  2. @Override
  3. public void applyOptions(Context context, GlideBuilder builder) {
  4. //设置图片的显示格式ARGB_8888
  5. builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
  6. //设置磁盘缓存目录
  7. String downloadDirectoryPath= Environment.getExternalStorageDirectory()
  8. +"/glideCache";
  9. int cacheSize100MegaBytes = 100000000;
  10. builder.setDiskCache(
  11. new DiskLruCacheFactory(downloadDirectoryPath, cacheSize100MegaBytes)
  12. );
  13. }
  14. @Override
  15. public void registerComponents(Context context, Glide glide) {
  16. }
  17. }

AndroidManifest.xml中增加。 com.android.talon.glidedemo是你的包名。

  1. <meta-data android:name="com.android.talon.glidedemo.GlideConfiguration"
  2. android:value="GlideModule"/>

4,其他

  1. 1)为什么glide加载速度比其他框架要快一些。这来源于它的加载与缓存机制。
  2. 加载机制上,Glide加载的大小和ImageView的大小是一致的,因此内存开销更小,速度更快。
  3. 缓存机制上,Glide缓存的是跟ImageView尺寸相同的,因为图片很小,所以缓存与取数据显示图片就更快了。
  4. 2 细心的你会发现,它会为每种大小的ImageView缓存 一次。尽管一张图片已经缓存了一次,但是假如你要在另外一个地方再次以不同尺寸显示,需要重新下载,调整成新尺寸的大小,然后将这个尺寸的也缓存起来。具体说来就是:假如在第一个页面有一个200x200ImageView,在第二个页面有一个100x100ImageView,这两个ImageView本来是要显示同一张图片,却需要下载两次。

不过,你可以改变这种行为,让Glide既缓存全尺寸又缓存其他尺寸:

  1. Glide.with(this)
  2. .load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg")
  3. .diskCacheStrategy(DiskCacheStrategy.ALL)//加载全尺寸
  4. .into(ivImageview);

下次在任何ImageView中加载图片的时候,全尺寸的图片将从缓存中取出,重新调整大小,然后缓存。

  1. 3Glide 还支持加载Gif动画。
  2. Glide.with(this)
  3. .load("http://ww3.sinaimg.cn/mw690/e75a115bjw1f2f4t8ubcjg20b405tb2c.gif")
  4. .into(ivImageview);

欢迎留言共同探讨。

发表评论

表情:
评论列表 (有 0 条评论,276人围观)

还没有评论,来说两句吧...

相关阅读

    相关 图片-Glide

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