Glide依赖配置:
implementation 'com.github.bumptech.glide:glide:4.13.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'
1.占位符配置
占位符总共有3种:placeholer、error、fallback
- placeholder:正在请求图片的时候展示的图片
- error:如果请求失败的时候展示的图片(如果没有设置,展示的placeholder的占位符)
- fallback :如果请求的url为null的时候展示的图片(如果没有设置,展示的placeholder的占位符)
1.1 三个占位符一起配置,第一种方式:
RequestOptions requestOptions = new RequestOptions()
.placeholder(R.drawable.ic_tv_placeholder_24dp)
.error(R.drawable.ic_tag_faces_black_24dp)
.fallback(R.drawable.ic_queue_play_next_black_24dp)
.override(150,150); //加载图片以150x150的分辨率
Glide.with(this)
.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F1111%2F06301Q05335%2F1P630105335-6.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1650174892&t=15a15b4a0efeada15506dbba74e61e86")
.apply(requestOptions)
.into(iv);
1.2三个占位符一起配置,第二种方式:
- 创建一个MyAppModule类,注意要编译一次
//配置完成后,编译一次
@GlideModule
public final class MyAppModule extends AppGlideModule {
}
- 创建MyAppExtension类,来加入频繁使用的占位符
//定义一个频繁使用的选项集合
@GlideExtension
public class MyAppExtension {
private MyAppExtension(){}
@GlideOption
public static BaseRequestOptions<?>defaultImg(BaseRequestOptions<?> options){
return options
.placeholder(R.drawable.ic_tag_faces_black_24dp)
.error(R.drawable.ic_tv_placeholder_24dp)
.fallback(R.drawable.ic_tv_placeholder_24dp);
}
}
- 方法调用,使用GlideApp
//3.2创建MyAppExtension,对于那些频繁调用的,可以使用下面的方式,一个方法defaultImg(),加入组合的配置
GlideApp.with(this).load("").defaultImg().into(iv);
1.3三个占位符一起配置,第三种方式,由第二种方式创建的MyAppModule,直接调用:
GlideApp.with(this)
.load("")
.placeholder(R.drawable.ic_tag_faces_black_24dp)
.into(iv);
2.变换效果
变换效果总共有4种(图片格式最好指定为jpeg):CircleCrop、RoundedCorners、GranularRoundedCorners、Rotate
- 圆形图片:CircleCrop
Glide.with(this).load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F1111%2F06301Q05335%2F1P630105335-6.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1650174892&t=15a15b4a0efeada15506dbba74e61e86")
.transform(new CircleCrop())
.into(iv);
- 圆角图片:RoundedCorners
Glide.with(this).load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F1111%2F06301Q05335%2F1P630105335-6.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1650174892&t=15a15b4a0efeada15506dbba74e61e86")
.transform(new RoundedCorners(30))//指定弧度为30度
.into(iv);
- 四个角为单独的角度:GranularRoundedCorners
Glide.with(this).load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F1111%2F06301Q05335%2F1P630105335-6.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1650174892&t=15a15b4a0efeada15506dbba74e61e86")
.transform(new GranularRoundedCorners(30,80,80,30))
.into(iv);
- 旋转效果:Rotate
Glide.with(this).load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F1111%2F06301Q05335%2F1P630105335-6.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1650174892&t=15a15b4a0efeada15506dbba74e61e86")
.transform(new Rotate(90))
.into(iv);
将这些最常用的做一些记录。
网友评论