Glide基础使用

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 BaseRequestOptionsdefaultImg(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);

将这些最常用的做一些记录。

你可能感兴趣的:(Glide基础使用)