beat365亚洲投注-365提款注单审核-比分365网页版

Glide的使用&GlideAPP怎么来的

Glide的使用&GlideAPP怎么来的

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最好设置固定大小

相关推荐