[Android开发] 图片加载库 Glide 的使用

Android 图片加载库 Glide 的使用

1 Glide 简介

本次项目中使用了 Glide 图片加载库。Glide 是 Google 官方推荐的一个图片加载的开源库,可以很简洁地加载网络图片。

2 Glide 使用

2.1 添加依赖

使用 Glide 首先需要导入 Glide 的依赖,在 build.gradle文件中添加:

dependencies {
    implementation 'com.github.bumptech.glide:glide:4.9.0'
}

如果 Glide 需要从网络中加载图片,则还需要在 Manifest文件中添加网络访问权限:

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

2.2 使用方法

Glide.with() 图片加载的环境:1,Context对象。2,Activity对象。3,FragmentActivity对象。4,Fragment对象
    .load() 加载资源:1,drawable资源。2,本地File文件。3,uri。4,网络图片url。5,byte数组(可以直接加载GIF图片)
    .placeholder() 图片占位符
    .error() 图片加载失败时显示
    .crossFade() 显示图片时执行淡入淡出的动画默认300ms
    .dontAnimate() 不执行显示图片时的动画
    .override() 设置图片的大小
    .centerCrop()fitCenter() 图片的显示方式
    .animate() view动画 2个重构方法
    .transform() bitmap转换
    .bitmapTransform() bitmap转换。比如旋转,放大缩小,高斯模糊等(当用了转换后你就不能使用.centerCrop().fitCenter()了。)
    .priority(Priority.HIGH) 当前线程的优先级
    .signature(new StringSignature(“ssss”))
    .thumbnail(0.1f) 缩略图,3个重构方法:优先显示原始图片的百分比(10%)
    .listener() 异常监听
    .into() 图片加载完成后进行的处理:1,ImageView对象。2,宽高值。3,Target对象

2.2.1 基本使用

Glide.with(context)
    .load(url)
    .into(imageView);

2.2.2 占位图

使用网络图片时,偶尔会出现图片加载慢或者加载不出来的情况。为了用户交互体验良好,我们通常会使用占位图用以标志加载状态。Glide 为我们提供了占位图方法 placeHolder() 以及加载失败的情况 error() :

Glide.with(context)
    .load(url)
    .placeholder(R.mipmap.default)
    .error(R.mipmap.error)
    .into(imageView);

2.2.3 指定图片格式

  • 如果调用了 .asBitmap()方法,则 .load()中的参数指向的可以是一个静态图片也可以是 GIF 图片,如果是一张 GIF 图片,则加载之后只会展示 GIF 图片的第一帧。
  • 如果调用的 .asGif()方法,则 .load()方法中的参数指向的必须是一个 GIF 图片。注意,如果指向一张静态图片那么该方法会产生错误。

这两个方法中只能调用一个:

Glide.with(context)
    .load(url) // 加载网络中的静态图片
    .asBitmap() // 将图片固定成静态图片
    .placeholder(R.mipmap.default)
    .error(R.mipmap.error)
    .into(imageView);

2.2.4 缩略图

和占位图略有不同,占位图必须使用资源文件,而缩略图是动态的,可以从网络中加载。缩略图会在请求加载完成或者处理完之后才显示。

Glide 调用 thumbnail() 方法加载缩略图,参数是 float 类型,作为其倍数大小。例如,你传入 0.2f 作为参数,Glide 将会显示原始图片的 20% 的大小,如果原图是 1000x1000 的尺寸,那么缩略图将会是 200x200 的尺寸。

Glide.with(context)
    .load(url)
    .thumbnail(0.2f)
    .into(imageView);

2.2.5 动画效果

Glide 使用 .animate()方法加载图片时展示的动画,可以是 Animator 类型的属性动画,也可以是 int 类型的动画资源。这个动画只在第一次加载的时候会展示,以后都会从缓存中获取图片,因此也就不会展示动画了。

Glide.with(context)
    .load(url)
    .animate(android.R.anim.slide_in_left) // 图片加载完成后的动画效果(从左侧滑入)
    .into(imageView);

2.2.6 图片请求的优先级

有时可能会有同时加载多个图片的情况。如果这个时候我们希望用户的体验更好,往往会选择先加载对于用户更加重要的图片。Glide 可以调用 .priority()方法配合 Priority 枚举来设置图片加载的优先级。

//设置 HIGH 优先级
Glide.with(context)
    .load(highPriorityImageUrl)
    .priority(Priority.HIGH)
    .into(imageView);
//设置 LOW 优先级
Glide.with(context)
    .load(lowPriorityImageUrl)
    .priority(Priority.LOW)
    .into(imageView);

2.3 进阶使用

本次项目中基本只使用了 Glide 的基本功能,如果想使用 Glide 进行一些进阶操作,例如自定义图片的尺寸,范围,颜色,像素位置,可以参考此博客。

你可能感兴趣的:(Android)