点击查看原文

一.引言

 Glide被广泛运用在google的开源项目中,包括2014年的google I/O大会上发布的官方app

 前面介绍了
  
  而本文介绍的Glide是在Picasso基础上进行的二次开发,和Picasso 有90%相似度,其优势显而易见。Universal ImageLoader已停止服务。
 

二.基本使用

  1.添加最新依赖  

compile 'com.github.bumptech.glide:glide:4.7.1'

注意:Glide默认会导入Android的support-v4包。4.71版本默认导入的是v4包的27版本。如果你的项目中有v4包的别的版本,就会引起冲突发生错误如 java.lang.NoSuchMethodError: No static method。

  2.基本使用

复制代码
Glide.with(mContext)
    .load(mDatas[position])
    .placeholder(R.mipmap.ic_launcher) //占位图
    .error(R.mipmap.ic_launcher)  //出错的占位图
    .override(width, height) //图片显示的分辨率 ,像素值 可以转化为DP再设置
    .animate(R.anim.glide_anim)
    .centerCrop()
    .fitCenter()
    .into(holder.image);
复制代码

三.拓展了解Glide加载不同的图片

  Glide不仅仅可以加载网络图片,同样也能加载资源图片,本地图片,GIf, 视频快照,缩略图等。

复制代码
  //(1)加载网络图片
    Glide.with(this).load("http://img1.imgtn.bdimg.com/it/u=2615772929,948758168&fm=21&gp=0.jpg").into(ivGlide1);

</span><span style="color: #008000;">//</span><span style="color: #008000;">(2)加载资源图片</span>
Glide.with(<span style="color: #0000ff;">this</span><span style="color: #000000;">).load(R.drawable.atguigu_logo).into(ivGlide2);

</span><span style="color: #008000;">//</span><span style="color: #008000;">(3)加载本地图片</span>
String path = Environment.getExternalStorageDirectory() + <span style="color: #800000;">"</span><span style="color: #800000;">/meinv1.jpg</span><span style="color: #800000;">"</span><span style="color: #000000;">;
File file </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> File(path);
Uri uri </span>=<span style="color: #000000;"> Uri.fromFile(file);
Glide.with(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">).load(uri).into(ivGlide3);

</span><span style="color: #008000;">//</span><span style="color: #008000;"> (4)加载网络gif</span>
String gifUrl = <span style="color: #800000;">"</span><span style="color: #800000;">http://b.hiphotos.baidu.com/zhidao/pic/item/faedab64034f78f066abccc57b310a55b3191c67.jpg</span><span style="color: #800000;">"</span><span style="color: #000000;">;
Glide.with(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">).load(gifUrl).placeholder(R.mipmap.ic_launcher).into(ivGlide4);

</span><span style="color: #008000;">//</span><span style="color: #008000;"> (5)加载资源gif</span>
Glide.with(<span style="color: #0000ff;">this</span><span style="color: #000000;">).load(R.drawable.loading).asGif().placeholder(R.mipmap.ic_launcher).into(ivGlide5);

</span><span style="color: #008000;">//</span><span style="color: #008000;">(6)加载本地gif</span>
String gifPath = Environment.getExternalStorageDirectory() + <span style="color: #800000;">"</span><span style="color: #800000;">/meinv2.jpg</span><span style="color: #800000;">"</span><span style="color: #000000;">;
File gifFile </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> File(gifPath);
Glide.with(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">).load(gifFile).placeholder(R.mipmap.ic_launcher).into(ivGlide6);

</span><span style="color: #008000;">//</span><span style="color: #008000;">(7)加载本地小视频和快照</span>
String videoPath = Environment.getExternalStorageDirectory() + <span style="color: #800000;">"</span><span style="color: #800000;">/video.mp4</span><span style="color: #800000;">"</span><span style="color: #000000;">;
File videoFile </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> File(videoPath);
Glide.with(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">).load(Uri.fromFile(videoFile)).placeholder(R.mipmap.ic_launcher).into(ivGlide7);

</span><span style="color: #008000;">//</span><span style="color: #008000;">(8)设置缩略图比例,然后,先加载缩略图,再加载原图</span>
String urlPath = Environment.getExternalStorageDirectory() + <span style="color: #800000;">"</span><span style="color: #800000;">/meinv1.jpg</span><span style="color: #800000;">"</span><span style="color: #000000;">;
Glide.with(</span><span style="color: #0000ff;">this</span>).load(<span style="color: #0000ff;">new</span> File(urlPath)).thumbnail(<span style="color: #800080;">0.1f</span><span style="color: #000000;">).centerCrop().placeholder(R.mipmap.ic_launcher).into(ivGlide8);

</span><span style="color: #008000;">//</span><span style="color: #008000;">(9)先建立一个缩略图对象,然后,先加载缩略图,再加载原图</span>
DrawableRequestBuilder thumbnailRequest = Glide.with(<span style="color: #0000ff;">this</span>).load(<span style="color: #0000ff;">new</span><span style="color: #000000;"> File(urlPath));
Glide.with(</span><span style="color: #0000ff;">this</span>).load(Uri.fromFile(videoFile)).thumbnail(thumbnailRequest).centerCrop().placeholder(R.mipmap.ic_launcher).into(ivGlide9);</pre>
复制代码