Glide是目前Android开发中广泛使用的图片加载库,凭借高效的缓存机制、灵活的配置选项和简洁的API设计,成为处理图片加载的首选工具,以下将详细解析Glide的核心API及其使用场景,帮助开发者快速掌握其核心功能。
Glide.with()
初始化Glide请求的入口方法,支持Activity、Fragment、Context等参数,自动管理生命周期。
Glide.with(context) // 上下文对象(Activity/Fragment/View) .load(imageUrl) // 支持URL、资源ID、File、Uri等 .into(imageView) // 目标ImageView
load()
指定图片来源,支持多种数据类型:
"https://example.com/image.jpg"
R.drawable.placeholder
File("/sdcard/image.png")
ByteArray
通过链式调用优化用户体验:
Glide.with(context) .load(url) .placeholder(R.drawable.loading_anim) // 加载中占位图 .error(R.drawable.error_fallback) // 加载失败显示 .fallback(R.drawable.default_image) // 数据为空时默认图 .into(imageView)
override(width, height)
强制指定图片尺寸,优化内存占用:
.override(300, 200) // 单位:像素
centerCrop()
与 fitCenter()
centerCrop()
: 等比缩放并居中裁剪填满View fitCenter()
: 等比缩放完整显示图片自定义转换
实现Transformation
接口,用于圆角、模糊等效果:
.transform(RoundedCorners(16)) // 圆角半径16px
磁盘缓存策略
.diskCacheStrategy(DiskCacheStrategy.ALL) // 可选参数: // - ALL(原始+转换后) // - NONE(禁用磁盘缓存) // - DATA(仅原始数据) // - RESOURCE(仅转换后数据)
跳过缓存
.skipMemoryCache(true) // 跳过内存缓存 .diskCacheStrategy(DiskCacheStrategy.NONE) // 跳过磁盘缓存
监听加载状态
Glide.with(context) .load(url) .addListener(object : RequestListener<Drawable> { override fun onLoadFailed(...): Boolean { // 处理失败逻辑 return false } override fun onResourceReady(...): Boolean { // 加载成功回调 return false } })
缩略图预加载
.thumbnail(0.1f) // 先加载原图10%质量的缩略图
GIF支持
.asGif() // 强制加载为GIF .asBitmap() // 将GIF转为静态图
通过@GlideModule
注解扩展Glide功能:
@GlideModule class CustomGlideModule : AppGlideModule() { override fun applyOptions(context: Context, builder: GlideBuilder) { builder.setDefaultRequestOptions( RequestOptions().format(DecodeFormat.PREFER_RGB_565) // 减少内存占用 ) } }
with()
方法override()
与ImageView
的scaleType
属性Glide.with(context).pauseRequests()
引用说明 参考自Glide官方文档(bumptech.github.io/glide)及GitHub仓库最新v4.16版本实现。