Glide的使用&GlideAPP怎么来的

作者: 代码打志bin | 来源:发表于2017-10-09 18:21 被阅读873次

1.Glide的优势和劣势or为什么选Glide

Glide优势
  • Glide.with()能传入activity,fragment等,可以和页面的生命周期绑定,不至于,页面停止了,图片还在加载
  • Glide支持多种数据源 本地 网络 uri assets
  • Glide加载的图片默认格式是RGB565,相比ARGB8888内存占用减少一半,但图片质量低了
  • Glide不用担心大图oom,它不会加载原图,会根据imageview的大小而加载多大
  • Glide缓存imageview大小的图片, picasso缓存原始图片,当imageview大小调整了,Glide需要重新下载,再缓存,picasso不用重新下载,只需重新绘制,一定程度上Glide加载比picasso快(时间换空间)
  • Glide可以加载动态图gif,可以播放本地视频!!!!!!
Glide劣势
  • Glide的包和方法数多
其他框架劣势
  • Fresco框架不好用布局文件要用drawees,配置麻烦,学习成本相对高一些,体积很大
  • Picasso.with()只能传入context
  • UIL没有更新了

2.Glide 4.0+的使用

1)在module的build.gradle中添加依赖
repositories {
  mavenCentral()
  maven { url 'https://maven.google.com' }
}

dependencies {
  compile 'com.github.bumptech.glide:glide:4.2.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.2.0'
}
2)使用GlideApp

在Glide4.0之前使用Glide只需要

 Glide.with(this)
         .load(url)
         .placeholder(R.mipmap.ic_launcher)
         .into(iv);

但是在Glide4.0之后load(url)之后就不能调用.placeholder()等方法
查看4.0+的文档发现需要通过GlideApp来调用一系列方法

GlideApp生成的方法:
①新建一个类继承AppGlideModule
②类添加GlideModule
③Make Module

import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

@GlideModule
public final class MyAppGlideModule extends AppGlideModule
{
      //可以配置Glide
}

现在就可以使用GlideApp了

GlideApp.with(this)
                .load(url)//资源路径
                .placeholder(R.mipmap.ic_launcher)//占位图
                .error(R.mipmap.ic_launcher)//加载失败
                .into(iv);

注意:需要添加网络权限!

3.Glide 4.0+图片转换

在开发中,图片经常要做一些变化,比如剪裁指定形状,圆角(可以使用CircleImageView),这边推荐一个Glide的图片转换库
https://github.com/wasabeef/glide-transformations
实现圆角效果如下:


还有一些变化,可以试试

小坑

添加了占位图.placeholder(R.mipmap.ic_launcher)
如果ImageView设置了warp_content占位图会影响加载图的大小
所以,ImageView最好设置固定大小

相关文章

网友评论

    本文标题:Glide的使用&GlideAPP怎么来的

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