Glide基本使用

来源:互联网 发布:苹果numbers是什么软件 编辑:程序博客网 时间:2024/06/08 06:12

Glide简介

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

优点:

  • 可配置度高,自适应程度高
  • 支持常见图片格式,jpg、png、gif、webp
  • 支持多种数据源,网络、资源、assets 、File、Uri等
  • 高效缓存策略支持内存和硬盘缓存
  • 生命周期集成根据Activity/Fragment生命周期自动管理请求
  • 高效处理Bitmap

Glide 使用

1.Glide配置

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

2.初始化

Glide.with(Context context);Glide.with(Activity activity);Glide.with(FragmentActivity activity);Glide.with(Fragment fragment);

将Glide和Activity/Fragment绑定,图片加载会和Activity/Fragment的生命周期保持一致

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

        //网络资源        Glide.with(context).load("http://xxx.jpg").into(imageView);        //assets资源        Glide.with(context).load("file://xxx.png").into(imageView);        //Resources资源        Glide.with(context).load(R.mipmap.ic_launcher).into(imageView);        //File资源        Glide.with(context).load(file).into(imageView);        //Uri资源        Glide.with(context).load(uri).into(imageView);        //字节数组        byte[] model = new byte[0];        Glide.with(context).load(model).into(imageView);

4.加载gif图片

  • 加载静态gif图片
Glide    .with(this)    .load(imageUrl)    .asBitmap()    .into(imageView);
  • 加载动态gif图片
Glide    .with(this)    .load(imageUrl)    .asGif()    .into(imageView);

5.设置加载中图片和加载失败的图片

.placeholder(R.drawable.placeholder)//加载中图片.error(R.drawable.error)//加载失败的图片

6.设置缩略图支持

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

7.设置加载动画

//        淡入淡出效果        Glide.with(this).load(imgUrl).crossFade().into(imageView);//        无动画        Glide.with(this).load(imgUrl).dontAnimate().into(imageView);//        自定义动画        Glide.with(this).load(imgUrl).animate(R.anim.slide_in_right).into(imageView);

8.设置监听回调

 .listener(RequestListener listener)

9.设置加载尺寸

//指定尺寸.override(800,800)//拉伸截取中间显示.centerCrop()//等比拉伸填满ImageView.fitCenter()

10.设置缓存策略

//        1.跳过内存缓存        Glide.with(this).load(imgUrl).skipMemoryCache(true).into(imageView);//        2.设置缓存策略        Glide.with(this).load(imgUrl).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);//        DiskCacheStrategy.ALL: 缓存资源和转换后的资源//        DiskCacheStrategy.NONE:不做任何磁盘缓存//        DiskCacheStrategy.SOURCE:缓存源资源//        DiskCacheStrategy.RESULT:缓存转换后的资源//        3.清理缓存//        清理磁盘缓存,需要在子线程中执行        Glide.get(context).clearDiskCache();//        清理内存缓存,可以在UI主线程中进行        Glide.get(context).clearMemory();

11.BitmapTransformation

Glide在Github上还有一个库,可以处理图片效果,比如裁剪、圆角、高斯模糊等等
  • 引入依赖库
compile 'jp.wasabeef:glide-transformations:2.0.1'
  • 实现高斯模糊
Glide.with(this)    .load(imgUrl)    .bitmapTransform(new BlurTransformation(context,radius))    .into(imageView);
0 0
原创粉丝点击