美文网首页
Glide基础使用

Glide基础使用

作者: BillyJean | 来源:发表于2022-03-21 11:18 被阅读0次

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

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

    相关文章

      网友评论

          本文标题:Glide基础使用

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