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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容