Android毕加索将先前加载的图像设置为占位符
我正在使用Android毕加索将先前加载的图像设置为占位符,android,kotlin,picasso,Android,Kotlin,Picasso,我正在使用毕加索加载图像的较小质量版本,如果用户在列表中单击该图像,则新的活动将打开,我将在其中显示同样使用毕加索的图像的完整质量版本 问题是图像的全质量版本很大,所以加载它需要一些时间 我想在此期间,以前加载的图像质量较小的版本显示。毕加索会立即展示它,因为它已经载入了之前的活动中 我曾两次尝试通过调用毕加索方法来实现它,如下所示: Picasso.get().load(url_small_quality).into(imageView) Picasso.get().load(url_full
毕加索
加载图像的较小质量版本,如果用户在列表中单击该图像,则新的活动
将打开,我将在其中显示同样使用毕加索
的图像的完整质量版本
问题是图像的全质量版本很大,所以加载它需要一些时间
我想在此期间,以前加载的图像质量较小的版本显示。毕加索会立即展示它,因为它已经载入了之前的活动中
我曾两次尝试通过调用毕加索方法来实现它,如下所示:
Picasso.get().load(url_small_quality).into(imageView)
Picasso.get().load(url_full_quality).into(imageView)
但是我认为它跳过了load(url\u small\u quality)
,因为imageView
在url\u full\u quality
加载之前会有一段时间是空的
我试着只运行load(url\u small\u quality)
,然后图像会立即加载,因为它以前是加载和存储的
有没有办法将以前加载的较小质量的图像设置为占位符,直到加载完整质量的图像?很可能毕加索正在取消您以前的请求,您可以尝试此方法
Picasso.get().load(url_small_quality).into(imageView,object:Callback{
override fun onSuccess() {
Picasso.get().load(url_full_quality).into(imageView)
}
override fun onError(e: Exception?) {
}
})
Picasso.get().load("http://i.imgur.com/DvpvklR.png").into(imageView);
正如Asha Garg在评论中所说,这是不可能做到的:
Picasso.get().load(url_small_quality).into(imageView)
Picasso.get().load(url_full_quality).into(imageView)
只需再创建一个imageview,然后用拇指将其放在上一个imageview的上方,然后在那里加载高分辨率图像
Java:
Picasso.get().load(url_small_quality).into(IVThumb, new Callback() {
@Override
public void onSuccess() {
Picasso.get().load(url_full_quality).into(IVFull, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError(Exception e) {
}
});
}
@Override
public void onError(Exception e) {
}
});
xml:
Picasso.get().load(url_small_quality).into(IVThumb, new Callback() {
@Override
public void onSuccess() {
Picasso.get().load(url_full_quality).into(IVFull, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError(Exception e) {
}
});
}
@Override
public void onError(Exception e) {
}
});
内部线性布局创建:
<ImageView
android:id="@+id/IVThumb"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/IVFull"
android:layout_width="match_parent"
android:layout_height="match_parent" />
对同一id调用into()将取消上一个请求(),这就是为什么您无法在加载高质量图像之前加载低质量图像。请检查并告诉我是否在脱机模式下将图像(显示小质量的图像)加载到列表中?您的问题是否已解决?问题尚未解决,我尝试了您的答案和注释,但它不起作用。谢谢,但没有onSuccess()
方法。有一个onBitmapLoaded
方法,我在那里尝试过。首先,我将低质量图像设置为ImageView
,然后加载高质量图像。但结果是一样的,低质量的图像没有显示,在高质量的图像加载之前,屏幕是空白的。。小url质量的url在您的列表页面上工作正常吗?如果启用小url的缓存,然后在全屏页面上重新使用该缓存,会怎么样?尝试了这个,但没有工作