Glide图片加载

原创:http://blog.csdn.net/qq_30379689/article/details/60373696

Glide的使用 

前言

用过的人都知道,加载图片哪家强,只有Glide,由于Glide采用链式调用,所以加载图片只要一句话,而且默认还带有淡出效果的动画

Glide.with(context).load(url).thumbnail(0.1f).skipMemoryCache(true).into(imageView);
  
  
  • 1

    Glide的简介

    官方的原话

    • Glide是一个快速和有效的开源媒体管理和图像加载Android框架包装媒体解码,内存和磁盘缓存,和资源汇集成一个简单和易于使用的界面

    Glide的配置

    配置很简单,只要在项目的Gradle添加依赖即可

    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support:support-v4:19.1.0'
      
      
    • 1
    • 2

      当然,如果涉及到网络加载图片,记得增加网络权限

      <uses-permission android:name="android.permission.INTERNET" />

      Glide的使用

      1、初始化

      Glide支持Activity和Fragment的绑定
      Glide.with(Context context);
      Glide.with(Activity activity);
      Glide.with(FragmentActivity activity);
      Glide.with(Fragment fragment);
        
        
      • 1
      • 2
      • 3
      • 4
      • 1
      • 2
      • 3
      • 4
      将Activity/Fragment作为with()参数的好处是,图片加载会和Activity/Fragment的生命周期保持一致

      2、加载资源

      Glide支持网络资源、assets资源、Resources资源、File资源、Uri资源、字节数组

      Glide.with(context).load("http://xxx.jpg").into(imageView);
      Glide.with(context).load("file:///xxx.png").into(imageView);
      Glide.with(context).load(R.mipmap.ic_launcher).into(imageView);
      Glide.with(context).load(file).into(imageView);
      Glide.with(context).load(uri).into(imageView);
      Glide.with(context).load(byte[]).into(imageView);
        
        
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      3、加载gif图片

      ① 加载静态gif图片

      Glide.with(this).load(imageUrl).asBitmap().into(imageView);
        
        
      • 1
      • 1

      ② 加载动态gif图片

      2 Glide.with(this).load(imageUrl).asGif().into(imageView);

      4、设置加载中和加载失败的图片

      ① 设置加载中图片

      .placeholder(R.drawable.placeholder) 
        
        
      • 1
      • 1

      ② 设置加载失败图片

      2. error(R.drawable.error)

      5、设置缩略图支持

      //先加载缩略图 然后在加载全图
      Glide.with(this).load(imageUrl).thumbnail(0.1f).into(imageView);
        
        
      • 1
      • 2
      • 1
      • 2

      6、设置加载动画

      ① 淡入淡出效果

      Glide.with(this).load(imageUrl).crossFade().into(imageView);
        
        
      • 1
      • 1

      ② 无动画

      Glide.with(this).load(imageUrl).dontAnimate().into(imageView);
        
        
      • 1
      • 1

      ③ 自定义动画

      Glide.with(this).load(imageUrl).animate(R.anim.alpha_in).into(imageView);
        
        
      • 1
      • 1

      7、设置监听回调

      Glide.with(this).load(imageUrl).listener(RequestListener listener).into(imageView);
        
        
      • 1
      • 1

      8、设置加载尺寸

      //指定尺寸
      Glide.with(this).load(imageUrl).override(800, 800).into(imageView);
      //拉伸截取中间部分显示
      Glide.with(this).load(imageUrl).centerCrop().into(imageView);
      //等比拉伸填满ImageView
      Glide.with(this).load(imageUrl).fitCenter().into(imageView);
        
        
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      9、设置缓存策略

      ① 设置跳过内存缓存

      Glide.with(this).load(imageUrl).skipMemoryCache(true).into(imageView);
        
        
      • 1
      • 1

      ② 设置缓存策略

      Glide.with(this).load(imageUrl).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);
        
        
      • 1
      • 1
      • DiskCacheStrategy.ALL:缓存源资源和转换后的资源
      • DiskCacheStrategy.NONE:不作任何磁盘缓存
      • DiskCacheStrategy.SOURCE:缓存源资源
      • DiskCacheStrategy.RESULT:缓存转换后的资源

      ③ 清理缓存

      //清理磁盘缓存 需要在子线程中执行
      Glide.get(this).clearDiskCache();
      //清理内存缓存  可以在UI主线程中进
      Glide.get(this).clearMemory();
        
        
      • 1
      • 2
      • 3
      • 4
      • 1
      • 2
      • 3
      • 4

      10、BitmapTransformation

      你可能不知道Glide在Github上还有一个库,可以处理图片效果,比如裁剪、圆角、高斯模糊等等

      ① 引入依赖库

      compile 'jp.wasabeef:glide-transformations:2.0.1'
         
         
      • 1
      • 1

      ② 实现高斯模糊

      //radius取值1-25,值越大图片越模糊
      Glide.with(context).load(url).bitmapTransform(new BlurTransformation(context, radius)).into(imageView);
         
         
      • 1
      • 2
      • 1
      • 2


        
        
      • 1

        当然,如果涉及到网络加载图片,记得增加网络权限

        <uses-permission android:name="android.permission.INTERNET" />
      • 2
          • 1
          • 2
          
          
        • 0
          点赞
        • 0
          收藏
          觉得还不错? 一键收藏
        • 0
          评论

        “相关推荐”对你有帮助么?

        • 非常没帮助
        • 没帮助
        • 一般
        • 有帮助
        • 非常有帮助
        提交
        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

        当前余额3.43前往充值 >
        需支付:10.00
        成就一亿技术人!
        领取后你会自动成为博主和红包主的粉丝 规则
        hope_wisdom
        发出的红包
        实付
        使用余额支付
        点击重新获取
        扫码支付
        钱包余额 0

        抵扣说明:

        1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
        2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

        余额充值