我正在用Kotlin制作一个Android应用程序,需要使用Picasso下载图像。我在下面看到了用于将动画设置为图像的Java代码,但无法将其转换为Kotlin,因为我不知道如何在“转为”功能中设置回调。
Picasso.with(MainActivity.this)
.load(imageUrl)
.into(imageView, new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
//set animations here
}
@Override
public void onError() {
//do smth when there is picture loading error
}
});
有人可以帮助我吗?
我的实际代码:
Picasso.with(context)
.load(url)
.into(imageDiapo, com.squareup.picasso.Callback)
答案 0 :(得分:3)
在最新版本onError
中,将Exception
作为参数,并使用get()
代替with()
:
Picasso.get()
.load(imageUrl)
.into(imageView, object :Callback{
override fun onSuccess() {
Log.d(TAG, "success")
}
override fun onError(e: Exception?) {
Log.d(TAG, "error")
}
})
以及在旧版本上
Picasso.with(MainActivity::this)
.load(imageUrl)
.into(imageView, object: Callback {
override fun onSuccess() {
Log.d(TAG, "success")
}
override fun onError() {
Log.d(TAG, "error")
}
})
答案 1 :(得分:1)
Picasso.with(MainActivity::this)
.load(imageUrl)
.into(imageView, object: com.squareup.picasso.Callback {
override fun onSuccess() {
//set animations here
}
override fun onError() {
//do smth when there is picture loading error
}
})
答案 2 :(得分:0)
嗨,这是毕加索提供的几种不同方式:
Picasso.with(context).load(path).into(imageView);
2。在我们的utils包中创建一个新文件,将其命名为picasso.kt,并使用以下简单代码填充它:
public val Context.picasso: Picasso
get() = Picasso.with(this)
3。虽然这对应于接收器对象,但我们可以在任何上下文上调用以下代码:
picasso.load(path).into(imageView)
我们可以进一步扩展ImageView类,例如:
public fun ImageView.load(path: String, request: (RequestCreator) -> RequestCreator) {
request(getContext().picasso.load(path)).into(this) }