Skip to content

GlideExtensions

燒餅 edited this page Jun 3, 2017 · 1 revision

GlideExtensions 是来自 moe.feng.kotlinyan:kotlinyan-glide-support 模块的扩展。 引入了强大的异步加载图片框架 Glide

在 ImageView 上异步加载

当你想要从一个地址中加载图片时, 在 Java 上使用 Glide 的写法是这样的:

Glide.with(context).load("http://wx1.sinaimg.cn/large/6f76b6dagy1fg5rg39y07j20r80hskbd.jpg").into(imageView);

引入扩展的 Kotlin 可以这样写:

imageView.loadUrl = "http://wx1.sinaimg.cn/large/6f76b6dagy1fg5rg39y07j20r80hskbd.jpg"

是不是简便多了?

除了传入 String 地址让 Glide 进行加载,还可以使用 Uri 或者 File。

比如:

imageView.loadUri = targetUri // 使用 Uri
imageView.loadFile = File(externalPath) // 使用 File

如果想要传入 Glide 回调,可以这样赋值,GlideExtensions 会使用 View 的 Tags 存放回调在加载时会自动传给 Glide:

imageView.glideListener = object : RequestListener<*, Drawable> { ... }

设置 Placeholder

Kotlinyan 扩展了 ImageView 属性 placeholderResource : Int & placeholder : Drawable

当你想在 Glide 加载时显示 Placeholder 只需设置这两个属性其中之一即可。

应用 Glide 请求

如果 GlideExtensions 提供的扩展属性还不能满足需求,希望能够直接获得 GenericRequestBuilder 进行设置,则需要用到 ImageView.glideBuilderTransform

例如:

imageView.glideBuilderTransform {
	...
	animate(android.R.anim.fade_in)
	diskCacheStrategy(DiskCacheStrategy.ALL)
}