-
Notifications
You must be signed in to change notification settings - Fork 1
PicassoExtensions
PicassoExtensions 是来自 moe.feng.kotlinyan:kotlinyan-picasso-support
模块的扩展。
引入了强大的异步加载图片框架 Picasso。
当你想要从一个地址中加载图片时, 在 Java 上使用 Picasso 的写法是这样的:
Picasso.with(context).load("http://wx1.sinaimg.cn/large/6f76b6dagy1fg5rg39y07j20r80hskbd.jpg").into(imageView);
引入扩展的 Kotlin 可以这样写:
imageView.loadUrl = "http://wx1.sinaimg.cn/large/6f76b6dagy1fg5rg39y07j20r80hskbd.jpg"
是不是简便多了?
除了传入 String 地址让 Picasso 进行加载,还可以使用 Uri 或者 File。
比如:
imageView.loadUri = targetUri // 使用 Uri
imageView.loadFile = File(externalPath) // 使用 File
如果想要传入 Picasso 回调,可以这样赋值,PicassoExtensions
会使用 View 的 Tags 存放回调在加载时会自动传给 Picasso:
imageView.picassoCallback = object : Callback { ... }
在 0.1.3 版本开始,Kotlinyan 扩展了 ImageView 属性 placeholderResource : Int
& placeholder : Drawable
。
当你想在 Picasso 加载时显示 Placeholder 只需设置这两个属性其中之一即可。
如果 PicassoExtensions 提供的扩展属性还不能满足需求,希望能够直接获得 RequestCreator 进行设置,则需要用到 ImageView.picassoRequestTransform
。
例如:
imageView.picassoRequestTransform {
...
memoryPolicy(...)
networkPolicy(...)
}
如果你使用上述方法加载图片,在传入图片位置前调用 imageView.enableMaterialPicassoAnimation()
即可。(会覆盖 picassoCallback)
如果你坚持使用 Picasso 原有的链式函数调用,可以将 into()
替换为 intoMaterialStyle()
。(这个方法支持额外的回调)
渐变动画的实现使用了 florent37/MaterialImageLoading。